本文实践的是多进程的方式做MYSQL单机多实例,一个实例一个进程,各实例有自己的配置文件,总结起来有以下几点:
- 端口port分开
- 配置文件分开
- socket分开
- 日志分开
- 多serverid
- 都可以使用mysql用户
1.源代码编译安装(略)
2.配置多实例
MYSQL版本:5.7.28
2.1.创建多个数据目录
mkdir /data/{3307,3306} -p
tree /data
/data
├── 3307
├── 3306
2.2.准备多个配置文件
vim /data/3306/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3306/data
port=3306
socket=/data/3306/mysql.sock
log-error=/data/3306/data/mysql.err
log-bin=/data/3306/data/mysql-bin
server_id=6
vim /data/3307/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data
port=3307
socket=/data/3307/mysql.sock
log-error=/data/3307/data/mysql.err
log-bin=/data/3307/data/mysql-bin
server_id=7
2.3 初始化多套数据目录
cd /usr/mysql/bin
./mysql_install_db --defaults-file=/data/3306/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
2.4 文件权限
chown -R mysql.mysql /data
2.4 启动&关闭MYSQL多实例
cd /usr/mysql/bin
启动
./mysqld_safe --defaults-file=/data/3307/my.cnf &
./mysqld_safe --defaults-file=/data/3306/my.cnf &
关闭(无密码)
./mysqladmin -S /data/3306/mysql.sock shutdown
./mysqladmin -S /data/3307/mysql.sock shutdown
关闭(有密码)
./mysqladmin -uroot -p123456 -S /data/3306/mysql.sock shutdown
./mysqladmin -uroot -p123456 -S /data/3307/mysql.sock shutdown
2.5 查看端口
netstat -ln | grep 330
2.6 设置多实例密码
cd /usr/mysql/bin
mysqladmin -uroot -S /data/3306/mysql.sock password ‘123456‘
mysqladmin -uroot -S /data/3307/mysql.sock password ‘123456‘
2.7 验证库连接
cd /usr/mysql/bin
mysql -uroot -p123456 -S /data/3307/mysql.sock
show variables like ‘server_id‘
mysql -uroot -p123456 -S /data/3306/mysql.sock
show variables like ‘server_id‘
2.8 忘记密码
修改my.cnf
[mysqld]
skip-grant-tables
启动mysql
修改密码
flush privileges;
alter user ‘root‘@‘localhost‘ identified with mysql_native_password by ‘123456‘;
flush privileges;