centos7.2 mysql-5.7 多实例配置
登录到 mysql 服务端计算机上。如果没有启动,需要先启动 mysql:
# systemctl start mysqld
查询数据文件目录:
# mysqladmin -u root -p’YourNewPass’ variables | grep datadir
| datadir | /var/lib/mysql/
查询 mysql 使用的配置文件次序:
# mysql –help|grep ‘my.cnf’
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
按照上面的次序依次查找,找到第一个出现的 my.cnf,即 mysql 服务使用的配置文件。本例为:
/etc/my.cnf
修改配置文件:
# cp /etc/my.cnf /etc/my.cnf.old
# vi /etc/my.cnf
多实例配置参考:
Configuring Multiple MySQL Instances Using systemd
Step-1:
修改配置文件: /etc/my.cnf
注意只能保留 [mysqld],其他都必须先注释掉!只增加最后1行:
!includedir /etc/my.cnf.d
修改后:
# cat /etc/my.cnf
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
default-storage-engine=MyISAM
max_connections=200
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#### 注释掉以下内容
##[mysql]
##default-character-set=utf8
##[mysql.server]
##default-character-set=utf8
##[mysqld_safe]
##default-character-set=utf8
##[client]
##default-character-set=utf8
##port=3306
##socket=/var/lib/mysql/mysql.sock
###########################################################################
# IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/my.cnf.d
Step-2:
在 /etc/my.cnf.d 目录下增加新的mysqld实例的配置文件:
mysqld-3307.cnf
内容如下:
# cat /etc/my.cnf.d/mysqld-3307.cnf
[mysqld@3307]
character-set-server=utf8
collation-server=utf8_general_ci
datadir=/data/data12/mysqldb/mysql
socket=/data/data12/mysqldb/mysql/mysql.sock
port=3307
log-error=/var/log/mysqld-3307.log
pid-file=/var/run/mysqld/mysqld-3307.pid
symbolic-links=0
要注意的是 mysql 数据目录必须为空:
/data/data12/mysqldb/mysql 目录必须为空,权限设置如下:
# chown mysql:mysql /data/data12/mysqldb/mysql
# chmod 751 /data/data12/mysqldb/mysql
Step-3:
启动第2个实例:
# systemctl start mysql@3307
登录修改密码:
找到 root 初始密码(备用)
# cat /var/log/mysqld-3307.log | grep password|grep root
# mysql_secure_installation -P 3307 -S /data/data12/mysqldb/mysql/mysql.sock
根据提示先输入 root 初始密码,然后更改为新密码。
- 正常登陆 mysql
# mysql -u root -p’新密码’ -S /data/data12/mysqldb/mysql/mysql.sock -P 3307
Step-4:
将 /etc/my.cnf注释掉的内容恢复。