CentOS7环境下MySQL5.7源码安装

目录

MySQL数据库架构

1.创建目录

2.解压mysql-5.7.27.tar.gz源码包

3.安装依赖

4.创建MySQL组和用户

5.cmake配置编译参数

6.开始编译安装

7.更改MySQL安装目录的属主和属组

8.修改MySQL配置文件

9.初始化数据库

10.实例开启SSL连接

11.修改data目录下的server-key.pem文件权限

12.启动MySQL数据库

13.更改root密码

14.登录和优雅关闭3306的实例


MySQL数据库架构

原图地址:

MySQL架构https://www.processon.com/view/61aeba735653bb080717797d?fromnew=1#pc

1.创建目录

mkdir -p /data/mysql/3306/{data,tmp,binlog,logs}

查看目录结构

tree -L 2 /data/mysql/

2.解压mysql-5.7.27.tar.gz源码包

cd /tmp/
mkdir 3306
tar xf mysql-5.7.27.tar.gz -C /tmp/3306/

3.安装依赖

yum -y install ncurses ncurses-devel bison cmake gcc gcc-c++

4.创建MySQL组和用户

groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql

    说明:
    -s /sbin/nologin 用户不能登录系统
    -M 不创建用户的HOME目录
    -g 指定用户登录组的GID或组名

5.cmake配置编译参数

cd /tmp/3306/mysql-5.7.27

cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql/3306\
 -DMYSQL_DATADIR=/data/mysql/3306/data \
 -DMYSQL_UNIX_ADDR=/data/mysql/3306/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
 -DENABLED_LOCAL_INFILE=ON \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
 -DWITH_ZLIB=bundled \
 -DWITH_EMBEDDED_SERVER=1 \
 -DWITH_DEBUG=0 \
 -DWITH_BOOST=/usr/local/boost

编译常见参数选项说明:

-DCMAKE_INSTALL_PREFIX=/data/mysql/3306设定mysql安装目录
-DMYSQL_DATADIR=/data/mysql/3306/data设定mysql数据文件目录
-DMYSQL_UNIX_ADDR=/data/mysql/3306/tmp/mysql.sock设定mysql.sock路径
-DDEFAULT_CHARSET=utf8设定默认的字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci设定默认排序规则
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii启用额外的字符集类型
-DENABLED_LOCAL_INFILE=ON启用本地数据导入支持
-DWITH_INNOBASE_STORAGE_ENGINE=1启用存储引擎
-DWITH_<ENGINE>_STORAGEENGINE=1启用某个引擎的支持
-DWITHOUT<ENGINE>_STORAGE_ENGINE=0禁用某个引擎的支持
-DWITH_FEDERATED_STORAGE_ENGINE=1启用存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1启用存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1启用存储引擎
-DWITHOUT_PARTITION_STORAGE_ENGINE=1启用存储引擎
-DWITH_ZLIB=bundled启用zlib库支持
-DWITH_EMBEDDED_SERVER=1编译嵌入式服务器支持
-DWITH_DEBUG=0禁用debug(默认为禁用)
-DWITH_BOOST=/usr/local/boost启用boost库支持,MySQL 5.7版本编译安装需要依赖boost库

6.开始编译安装

make install

7.更改MySQL安装目录的属主和属组

chown -R mysql:mysql /data/mysql/3306/
cp /etc/my.cnf.bak /data/mysql/3306/my3306.cnf
chown mysql:mysql /data/mysql/3306/my3306.cnf

8.修改MySQL配置文件

vi /data/mysql/3306/my3306.cnf

[client]
port = 3306
socket = /data/mysql/3306/tmp/mysql.sock
default-character-set = utf8

[mysqld]
port = 3306
user = mysql
basedir = /data/mysql/3306
datadir = /data/mysql/3306/data
pid-file = /data/mysql/3306/mysqld.pid
socket = /data/mysql/3306/tmp/mysql.sock
tmpdir = /data/mysql/3306/tmp
character_set_server = utf8
server-id = 1
max_connections = 100
max_connect_errors = 10
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
#log-bin = /data/mysql/3306/binlog/mysql-bin
relay-log = /data/mysql/3306/binlog/relay-bin
log-error = /data/mysql/3306/logs/mysql_5_7_27.err

9.初始化数据库

cd /data/mysql/3306/
./bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql/3306 --datadir=/data/mysql/3306/data --socket=/data/mysql/3306/tmp/mysql.sock

    提示:
           #生成初始化密码参数(5.7版本才有),必须要添加,否则会初始化失败,会生成空密码
              -initialize-insecure
           #设定初始化用户
              --user=mysql
          #设定mysql工作目录
              --basedir=/data/mysql/3306
          #设定数据文件目录
              --datadir=/data/mysql/3306/data

10.实例开启SSL连接

cd /data/mysql/3306/
./bin/mysql_ssl_rsa_setup --initialize-insecure --user=mysql --basedir=/data/mysql/3306 --datadir=/data/mysql/3306/data

11.修改data目录下的server-key.pem文件权限

cd /data/mysql/3306/data/
chmod +r server-key.pem
ls -l server-key.pem

    提示:
    如果不给文件server-key.pem其他用户和组可读权限的话,当启动数据库的时候,会报如下错误

    [ERROR] SSL error: Unable to get private key from 'server-key.pem'
    [Warning] Failed to set up SSL because of the following SSL library error: Unable to get private key

12.启动MySQL数据库

/data/mysql/3306/bin/mysqld_safe --defaults-file=/data/mysql/3306/my3306.cnf 2>&1 > /dev/null &

注意:如果有报错的解决方法

touch /data/mysql/3306/logs/mysql_5_7_27.err
chown -R mysql:mysql /data/mysql/3306/logs/mysql_5_7_27.err

13.更改root密码

 /data/mysql/3306/bin/mysqladmin -u root -S /data/mysql/3306/tmp/mysql.sock -p 密码

14.登录和优雅关闭3306的实例

#登录3306实例

/data/mysql/3306/bin/mysql -u root -S /data/mysql/3306/tmp/mysql.sock -p

#优雅关闭数据库

/data/mysql/3306/bin/mysqladmin –u用户名 –p密码 shutdown

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo^?

你的关注是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值