mysql主从复制(一主一从)
主机配置
1.修改配置文件(/etc/my.cnf)
vim /etc/my.cnf
配置文件添加内容:
log-bin=mysql-bin # 启用二进制
server-id=100 # 服务器唯一标识
2.给从库授权用户
(1)查看用户密码强度等级命令:
select @@validate_password_policy;
(2)授权一个用户给slave使用
GRANT REPLICATION SLAVE on *.* to 'xiaoming'@'%' identified by 'root@123456';
(3)查看master状态
show master status

这里的file和positon的内容都是可以变化的,并且在从库中也会使用到。这时就不要做任何的操作。直接去配置从库。
这里容易有一个坑就是:密码设置错误。可能自己设置的密码简单,可以将密码改的复杂或者去改密码强度策略设置简单的密码
注意:xiaoming:用户名 %:ip地址 root@123456:密码 这些都可以根据自己的习惯进行设置
从库配置(另一个数据库服务器)
1.修改配置文件(/etc/my.cnf)
vim /etc/my.cnf
配置文件添加内容:
server-id=11 # 服务器唯一标识
id可以随便设置,但是每个服务器要不同。保证他们的唯一性就可
2.登陆mysql,执行以下sql
change master to master_host='192.168.137.143',master_user='xiaoming',master_password='root@123456',master_log_file='master_log.000003',master_log_pos=154;
这里的值都是根据自己的情况进行更改。
3.启动slave
start salve
4.查看状态
show slave start
这时就配置好了。可以去测试了。
遇见的错误:
1.克隆Linux虚拟机服务器,导致mysql主从复制关于UUID重复,出现Slave_IO_Running: Connecting /Slave_IO_Running: No错误。
解决办法:删除/var/lib/mysql下的auto.cnf文件。然后重启mysql服务。
cd /var/lib/mysql
rm -rf auto.cnf
systemctl restart mysqld
问题解决。再次登录msyql。查看slave的状态。就是正常的waite状态了。
2.配置好后。错误指令导致从库没有更新主库的sql语句。
由于开始并未配置成功就执行了create database user。这时从库并未更新这个user库。导致在创建表时发生错误。这时只需要将报的错误改过来即可。试例:缺少数据库就在从库中添加库。缺少字段就在从库添加字段。 修改错误后重启(start slave)。其他的sql语句都会自动的更新到。
版权声明:本文为qq_53270893原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。