mysql5.7.20多实例配置¶
1. 删除上一篇生成的数据文件!¶
rm -rf /data/330*/*
# 没启动前内存:12.35G
# 启动3个实例后内存:12.87G
# 大概使用内存:0.52G
# 每个实例大概使用:0.17G内存!
2. 思路¶
1. 启动多个MySQL进程
2. 规划多套数据
3. 规划多个端口
4. 规划多套日志路径
3. 创建多套目录并改权限¶
mkdir -p /data/330{7,8,9}/data
chown -R mysql.mysql /data/330*
4. 准备多套配置文件¶
vim /data/3307/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data #数据文件中不能有文件!!!
server-id=3307
port=3307
user=mysql #不加后面启动会报错
log-bin=/data/3307/mysql-bin
socket=/data/3307/mysql.sock
log-error=/data/3307/mysql.log
[mysql]
socket=/data/3307/mysql.sock
vim /data/3308/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
server-id=3308
port=3308
user=mysql
log-bin=/data/3308/mysql-bin
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log
[mysql]
socket=/data/3308/mysql.sock
vim /data/3309/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3309/data
server-id=3309
port=3309
user=mysql
log-bin=/data/3309/mysql-bin
socket=/data/3309/mysql.sock
log-error=/data/3309/mysql.log
[mysql]
socket=/data/3309/mysql.sock
5. 初始化多套数据¶
mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql
mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/3308/data --user=mysql
mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/3309/data --user=mysql
6. 启动多个实例¶
# (使用mysqld命令!不要使用mysqld_safe命令!!!否则不知道密码啊!!!)
mysqld --defaults-file=/data/3307/my.cnf &
mysqld --defaults-file=/data/3308/my.cnf &
mysqld --defaults-file=/data/3309/my.cnf &
7. 查看启动端口¶
netstat -tunlp |grep 330
root@4c16g:~# netstat -tunlp|grep 330
tcp6 0 0 :::3309 :::* LISTEN 1403583/mysqld
tcp6 0 0 :::3306 :::* LISTEN 2991330/mysqld
tcp6 0 0 :::3307 :::* LISTEN 1403465/mysqld
tcp6 0 0 :::3308 :::* LISTEN 1403466/mysqld
8. 分别连接测试¶
mysql -S /data/3307/mysql.sock -e "show variables like 'server_id';"
mysql -S /data/3308/mysql.sock -e "show variables like 'server_id';"
mysql -S /data/3309/mysql.sock -e "show variables like 'server_id';"
查看结果
root@4c16g:~# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 3307 |
+---------------+-------+
root@4c16g:~#
root@4c16g:~# mysql -S /data/3308/mysql.sock -e "show variables like 'server_id';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 3308 |
+---------------+-------+
root@4c16g:~#
root@4c16g:~# mysql -S /data/3309/mysql.sock -e "show variables like 'server_id';"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 3309 |
+---------------+-------+
9. 关闭多实例mysql¶
mysqladmin -S /data/3307/mysql.sock shutdown
mysqladmin -S /data/3308/mysql.sock shutdown
mysqladmin -S /data/3309/mysql.sock shutdown
root@4c16g:~# mysqladmin -S /data/3307/mysql.sock shutdown
[1] Done mysqld --defaults-file=/data/3307/my.cnf
root@4c16g:~#
root@4c16g:~# mysqladmin -S /data/3308/mysql.sock shutdown
[2]- Done mysqld --defaults-file=/data/3308/my.cnf
root@4c16g:~#
root@4c16g:~# mysqladmin -S /data/3309/mysql.sock shutdown
[3]+ Done mysqld --defaults-file=/data/3309/my.cnf
root@4c16g:~#
查看端口确认
root@4c16g:~# netstat -tunlp|grep 330
tcp6 0 0 :::3306 :::* LISTEN 2991330/mysqld
最后更新:
2022-02-20 08:44:07