启动多实例
为不同实例配置不同的端口号(本文以 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 = 3308master-user = 'repl'master-password = '密码'
开始复制
start slave;
停止复制
stop slave;
查看状态
show master status;show slave status;
切换为主服务器
reset master;