启动多实例
为不同实例配置不同的端口号(本文以 3307 为主服务器,3308 为从服务器)
为不同实例的配置文件设置不同的
server_id
(不显式指定时默认为 1,主服务器和从服务器的server_id
不能相同)开启二进制日志
参考 MySQL 启动多个实例
主服务器创建账号
# 创建账号
create user 'repl'@'%' identified with mysql_native_password by '密码';
#授予从机复制权限
grand replication slave on *.* to 'repl'@'%';
从主服务器导出数据
如果主服务器上已经有数据,通过以下命令导出:
#导出带 CHANGE MASTER 命令,以便从服务器定位到主服务器的二进制日志的正确位置
mysqldump -u user -p -P 3307 --databases db1 db2 --result-file=master.sql --master-data
导入数据到从服务器
mysql -uroot -p -P 3308 < master.sql
修改要复制的主服务器信息
change master to master_host='localhost',
master_port=3308,
master_user='repl',
master_password='密码',
master_log_file='binglog.000001',
master_log_pos=100;
如果 master_log_file
和 master_log_pos
在导入数据时已经设置过,此处可以省略
还可以通过以下配置项配置主服务器信息:
master-host = 'localhost'
master-port = 3308
master-user = 'repl'
master-password = '密码'
开始复制
start slave;
停止复制
stop slave;
查看状态
show master status;
show slave status;
切换为主服务器
reset master;