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 status\G;
当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';