Linux- MySQL 主从复制
1.关闭两台机器的防护火墙,观察两台机器的mysql服务是否正常启动,最后关闭mysql服务
systemctl stop firewalld;
systemctl disable firewalld;
2.分别配置主机与从机的配置文件
vim /etc/my.cnf
-
主机 master:
server-id=1 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
-
从机 slave:
server-id=2 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
3.开启mysqld服务,进入mysql输入指令,
# 开启服务
systemctl restart mysql
# 客户端进入服务
mysql -uroot -p1234
# 查看配置是否生效
show variables like 'server_id';
4.到主节点上 查看状态
show master status;
5.在从节点 上指定主节点数据库
# 进入从节点数据库
mysql -u root -p root
# 指定主数据库
change master to
master_host = '192.168.75.240',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000001',
master_log_pos=120;
6.在从节点上 开启从节点:
start slave;
7.查看从节点状态 [\G]格式化
show slave status\G;
错误一:无法连接到主机
原因分析:
无法连接到主节点,应该是刚才在从节点上的配置有误,仔细查看先前的配置,发现主机用户密码指定为root,但实际密码为123456
问题解决: 在从节点上重新配置连接信息
stop slave;
# 1.指定主数据库
change master to
master_host = '192.168.75.240',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=120;
# 2.重新开启从节点
start slave;
# 3.查看从节点配置信息
show slave status\G;
错误二:从机和主机uuid重复。
原因分析:
这是由于从机是克隆主机生成的,所以uuid唯一标识一致。
问题解决:
删除从节点的auto.cnf 配置文件
rm -f /var/lib/mysql/auto.cnf
# 1.重新开启mysql服务
systemctl restart mysql
# 2.这时,可以查看auto.cnf 配置文件,mysql自动生成了这个文件,里面的uuid和上次不一致
cat /var/lib/mysql/auto.cnf
# 3.开启从节点
start slave;
# 4.查看从节点状态
show slave status\G;