RHEL 7.5 源码安装 mysql-5.7.17 数据库

RHEL 7.5 mysql-5.7.17 源码安装

1、解决依赖包并下载源码包
# yum -y install gcc gcc-c++ ncurses ncurses-devel bison
# wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# tar -zxvf boost_1_59_0.tar.gz
# mv boost_1_59_0 /usr/local/boost 
# wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
# tar -zxvf mysql-5.7.17.tar.gz

如果没有 cmake 则需要单独安装,安装cmake步骤如下:
tar –axf cmake-3.8.2.tar.gz
cd cmake-3.8.2
./configure
make
make install

2、新建MySQL用户和用户组,创建/data/mysql 目录存放mysql数据
# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
# mkdir -pv /data/mysql

3、预编译及编译安装
# cd mysql-5.7.17
cmake \
-DCMAKE_INSTALL_PREFIX=/data/mysql/ \
-DMYSQL_DATADIR=/data/mysql/data/ \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DDEFAULT_charset=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_EXTRA_CHARSETS=all  \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DMYSQL_USER=mysql \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost/

参数注解:
DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安装路径
DMYSQL_DATADIR=/data/mysql:数据文件存放位置
DSYSCONFDIR=/etc:my.cnf路径
DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎
DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎
DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:连接数据库socket路径
DMYSQL_TCP_PORT=3306:端口
DENABLED_LOCAL_INFILE=1:允许从本地导入数据
DWITH_PARTITION_STORAGE_ENGINE=1:安装支持数据库分区
DEXTRA_CHARSETS=all:安装所有的字符集
DDEFAULT_charset=utf8:默认字符
DWITH_EMBEDDED_SERVER=1:嵌入式服务器

开始编译安装:
make
make install

4、初始化MySQL系统授权表
以root初始化操作时要加 --user=mysql 参数,生成一个随机密码(注意保存登录时用)
执行初始化配置脚本,目的是创建系统自带的数据库和表
$ /data/mysql/bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
注意:mysql_install_db 参数在 5.7 版本之后被弃用,请使用 --initialize 参数。初始化数据库时请注意看弹出的信息,以免有错误产生,初始化结束后会生成一个临时密码,需要记录下来,如下:
2024-12-19T07:42:31.832168Z 1 [Note] A temporary password is generated for root@localhost: /HiBW!XkD3e%

5、创建配置文件
将默认生成的 my.cnf 备份或删除
# mv /etc/my.cnf /etc/my.cnf.bak
# cd /data/mysql/support-files
# cp my-default.cnf /etc/my.cnf
# chmod 644 /etc/my.cnf
按需修改新的配置文件选项, 不修改配置选项, mysql则按默认配置参数运行.
vi /etc/my.cnf

[client]
port = 3306
socket = /data/mysql/mysql.sock
default_character-set=utf8

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
user = mysql
port = 3306
socket = /data/mysql/mysql.sock
basedir = /data/mysql
datadir = /data/mysql/data
server_id = 12315
log_bin=/data/mysql/mysql-binlog/mysql-bin
expire_logs_days = 7
slow_query_log = on
slow_query_log_file = /data/mysql/slowlog/slow.log
long_query_time = 1
log_queries_not_using_indexes = on

# 建议禁用符号链接,可以防止各种安全风险
symbolic-links=0
[mysqld_safe]
log_error = /data/mysql/mysql_error.log
pid_file = /data/mysql/mysql.pid
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=500
time_zone = '+8:00'
explicit_defaults_for_timestamp=true

6、配置防火墙
Linux 7 中默认使用 Firewalld 防火墙,Firewalld中添加端口方法如下:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
在终端内运行下面的命令,刷新防火墙配置:
systemctl restart firewalld

7、配置用户调用环境
修改 /etc/profile文件,在文件末尾添加
PATH=/data/mysql/bin:$PATH
export PATH
运行下面的命令,让配置立即生效
source /etc/profile

8、配置mysql启动服务
启动服务:
# cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
增加执行权限
# chmod 755 /etc/init.d/mysqld
# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
查看mysql端口
# netstat -ntlp |grep mysqld
注意:如需配置自动启动需要把服务加入到启动项,我这里是测试环境,不希望它自启动。

9、设置mysql密码
使用初始化时记录的密码登录数据库并修改密码:
# mysql -u root -p
Enter password: /HiBW!XkD3e%
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17-log

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

若要设置root用户可以远程访问,执行如下命令:
mysql> grant all privileges on *.* to root@'192.168.142.1' identified by 'root' with grant option;
mysql> flush privileges;

到此mysql源码编译安装完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题

当在idea中一个module A引用另外一个项目B的jar,但是从私服仓库中拉下的jar版本比较低导致编译不通过时,可以把项目B拉下来,重新编译打包jar跟新到本地的仓库 选中右边菜单的Maven 选中对应的项目B-》Lifecycle->双击 install也可以按住c…

Windows下安装Rabbit MQ

一、安装环境: 系统:windows11; 环境配置安装:otp_win64_25.3.2.14.exe(erlang类库); 服务应用安装:rabbitmq-server-3.12.4.exe; 二、erlang环境: 1.执行…

《Vue进阶教程》第十六课:深入完善响应式系统之单例模式

往期内容: 《Vue进阶教程》第五课:ref()函数详解(重点) 《Vue进阶教程》第六课:computed()函数详解(上) 《Vue进阶教程》第七课:computed()函数详解(下) 《Vue进阶教程》第八课:watch()函数的基本使用 《Vue进阶教…

docker run 命令参数

user docker run -it --nameubn18 --gpus all --privilegedtrue --shm-size 8G ubuntu:18.04 /bin/bash-it 是什么意思 4o 在运行 docker run 命令时,-it 是两个选项的组合,用于更好地与容器进行交互: -i 或 --interactive:这个选…

生态学研究中,森林生态系统的结构、功能与稳定性是核心研究

在生态学研究中,森林生态系统的结构、功能与稳定性是核心研究内容之一。这些方面不仅关系到森林动态变化和物种多样性,还直接影响森林提供的生态服务功能及其应对环境变化的能力。森林生态系统的结构主要包括物种组成、树种多样性、树木的空间分布与密度…

[python]使用flask-caching缓存数据

简介 Flask-Caching 是 Flask 的一个扩展,为任何 Flask 应用程序添加了对各种后端的缓存支持。它基于 cachelib 运行,并通过统一的 API 支持 werkzeug 的所有原始缓存后端。开发者还可以通过继承 flask_caching.backends.base.BaseCache 类来开发自己的…

测试电脑是否真实多核CPU

测试电脑是否真实多核CPU 在CPU的描述上现在多数看到的是多核心/多内核,看上去就像是多CPU的样子。但核心是有分真实核心和虚拟核心。如果是真实的多核心,多线程是能够并行。如果不是多核心,多线程就只能够并发。 这里就直接采用多线程的应用…

基于UNITY3D的照片墙演示项目技术分享

unity实现超大图片墙演示,由于拥有海量图片,使用了CPU 多线程,unity dots技术,图片组成文字部分,使用了点阵图技术,提取文字像素。 (关于点阵介绍) 点阵字体是把每一个字符都分成1616或2424个点…

Go 语言并发实战:利用协程处理多个接口进行数据融合

高效地处理多个数据源并将其整合为有意义的结果是开发中一项重要的任务。Go 语言,以其强大的并发特性,为我们提供了优雅而高效的解决方案。那么我们探讨一下如何利用 Go 语言的协程,同时调用多个接口获取数据,并将这些数据无缝地合…

设计模式-访问者设计模式

介绍 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素的类的前提下定义作用于这些元素的新操作。 问题:在一个机构里面有两种员工,1.Teacher 2.Engineer 员…

leetcode 面试经典 150 题:合并两个有序数组

链接合并两个有序数组题序号88题型数组解题方法1. 双指针法 ;2. 合并排序法难道简单熟练度✅✅✅✅✅ 题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 …

ISO/IEC 25010:2023 系统和软件的质量模型(产品质量模型)

本文是对ISO/IEC 25010 2023年底第2版:系统和软件工程-系统和软件质量要求与评估 (SQuaRE)-产品质量模型一文的转载,此外还参考了ISO/IEC 25019:2023(en) Systems and software engineering — Systems and software Quality Requirements and Evaluatio…

【信息系统项目管理师】高分论文:论信息系统项目的成本管理(不动产登记系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划成本管理2、估算成本3、制定预算4、控制成本论文 根据XX省自然资源厅的总体部署,XX市决定于2020年8月开始全市不动产登记系统建设,要求在2021年8月1日全市“颁发新证,停发旧证”,实现全市范围的…

【零基础保姆级教程】制作自己的数据集——Labelimg的安装与使用及常见的报错解决方法

1.是什么 LabelImg 是一个图形化的图像标注工具,主要用于机器学习和计算机视觉领域中的数据预处理。它是由 GitHub 用户 tzutalin 开发的开源项目,基于 Python 和 Qt 框架编写。LabelImg 允许用户手动为图像添加边界框(bounding boxes&#…

【java基础系列】实现数字的首位交换算法

在java中&#xff0c;手写实现一个数字的首位交换算法实现 实现效果 实现代码 核心业务代码 public static void main(String[] args) {int[] arr {1,2,3,4,5};int temp arr[0];for (int i 0; i < arr.length; i) {System.out.print(arr[i]);}System.out.println(&quo…

Docker 部署机器学习模型

1.编写机器学习代码 &#xff08;1&#xff09;新建一个 mlmodel.py import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sk…

【java面向对象编程】第七弹----Object类、类变量与类方法

笔上得来终觉浅,绝知此事要躬行 &#x1f525; 个人主页&#xff1a;星云爱编程 &#x1f525; 所属专栏&#xff1a;javase &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 一、Object类 1.1equa…

GO--堆(have TODO)

堆 堆&#xff08;Heap&#xff09;是一种特殊的数据结构。它是一棵完全二叉树&#xff08;完全二叉树是指除了最后一层外&#xff0c;每一层上的节点数都是满的&#xff0c;并且最后一层的节点都集中在左边&#xff09;&#xff0c;结放在数组&#xff08;切片&#xff09;中…

Redis篇--常见问题篇8--缓存一致性3(注解式缓存Spring Cache)

1、概述 Spring Cache是Spring框架提供的一个缓存抽象层&#xff0c;旨在简化应用程序中的缓存管理。通过使用Spring Cache&#xff0c;开发者可以轻松地将缓存机制集成到业务逻辑中&#xff0c;而无需关心具体的缓存实现细节。 Spring Cache支持多种缓存提供者&#xff08;如…

java开发入门学习五-流程控制

流程控制语句 if&#xff0c; if...else&#xff0c; if..else if..else 与前端相同 略 switch case 与前端不同的是case不能使用表达式&#xff0c;使用表达式会报错 class TestSwitch {public static void main(String[] args) {// switch 表达式只能是特定的数据类型…