MySQL主从复制搭建

本次测试使用两个虚拟机:
ip:192.168.2.21(主)
ip:192.168.2.22(从)
如果不清楚Mysql安装和基本配置,请先浏览 《简单安装MySQL》

主从复制

1.修改mysql配置文件(主从)

vim /etc/my.cnf
在[mysqld]下添加
server-id=1
log-bin=mysql-bin
保存,其中主从数据库的server-id必须唯一
server mysql restart

2.查看主数据库状态(主)

登陆mysql命令行,键入:

show master status;  #查看File和Position的值

3.从数据库连接主数据库(从)

 登陆mysql命令行,键入:

change master to 
master_host='192.168.2.21',
master_user='root',
master_password='tiger',
master_port=3306,
master_log_file='mysql-bin.000001',
master_log_pos=120;

其中master_log_file的值为步骤2中的File,master_log_pos值为步骤一中的Position

4.启动从服务器复制功能(从)

start slave;

5.查看从服务器复制功能状态(从)

show slave statusG;

当Slave_IO_Running和Slave_SQL_Running都为YES时,即成功

6.验证

使用一个简单的例子:在主数据库创建名为mysql_test的数据库,那么在从数据库中也能查询出名为mysql_test数据库

失败原因

1) server-id不唯一或未更新到Mysql数据中
2) 防火墙拦截数据库端口
3) 用户名与密码不正确
4) Mysql不允许其他机器访问

常见为题

    The slave I/O thread stops because master and slave have equal MySQL server UUIDs;  these UUIDs must be different for replication to work.
    解答:
         查看主从数据库的server_id是否相等,相等需要修改(/etc/my.cnf)
         show variables like 'server_id';
原文地址:https://www.cnblogs.com/moonlightL/p/7421898.html