准备2台服务器,并且在2台服务器上安装mysql
1.主机配置
vim /etc/my.cnf
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
#设置需要复制的数据库
binlog-do-db=test_slave
#设置logbin格式 默认
binlog_format=STATEMENT
- 从机配置
vim /etc/my.cnf
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
3.主机、从机重启 MySQL 服务
service mysql restart
4.主机从机都关闭防火墙
systemctl stop firewalld.service
- 在主机上建立帐户并授权 slave
# 启动mysql 输入密码
cd /usr/local/mysql
./bin/mysql -u root -p
# 执行
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'root';
5.#查询master的状态
show master status;
记录下File和Position的值
执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
6.从机启动mysql
cd /usr/local/mysql
./bin/mysql -u root -p
执行(如果搭过主从复制,执行 stop slave; reset master;如果无则忽略)
CHANGE MASTER TO MASTER_HOST='192.168.10.106',
MASTER_USER='slave',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=438;
#启动从服务器复制功能
start slave;
#查看从服务器状态
show slave status\G;
停止slave
stop slave;
失败,是以为我是直接复制的虚拟机,解决方法
https://blog.csdn.net/weixin_44285972/article/details/125449796?spm=1001.2014.3001.5502
#下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
然后进行数据库验证!