主节点服务器 地址 192.168.0.105
从节点服务器 地址 192.168.0.107
主节点服务器安装好之后,直接clone 一个即可,不需要重复安装2次。
主节点服务器配置
1.进入配置页面命令
vi /etc/my.cnf
2.配置服务器id server_id
这里的server_id 尽量配置为服务器地址的后3位 以用来区分
server_id=105
3.开启日志文件(binLog)
log-bin=mysql-bin
配置文件的地址应该在 : # Recommended in standard MySQL setup,否则配置不起作用
如下图所示
4.重启mysql服务
service mysqld restart
验证是否已经配置成功
5.show variables like '%server_id%';
能够查询对应配置文件中的server_id 说明已经配置成功,如下图,则表示配置成功。server_id=105

6.show master status;
能够看到同步的文件,和行数说明已经配置成功。

从服务器节点
1.进入配置页面命令
vi /etc/my.cnf
2.配置服务器id server_id
这里的server_id 尽量配置为服务器地址的后3位 以用来区分
server_id=105
3.开启日志文件(binLog)
log-bin=mysql-bin
4.添加需用同步的数据库
binlog_do_db=test
5.重启mysql服务
service mysqld restart
验证是否已经配置成功
6.show variables like '%server_id%';
能够查询对应配置文件中的server_id 说明已经配置成功

7.从服务器同步主服务器配置
master_host 主服务器地址
master_user 主服务器用户名
master_password 主服务器密码
master_log_file 主服务器配置文件
master_log_pos 主服务器读取配置文件的开始位置,也就是从第多少行开始读取。
change master to master_host='192.168.0.105',master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=120;
8.开始同步
start slave
9.检查从服务器复制功能状态
SHOW SLAVE STATUS
如果二个从服务器是克隆主服务器的,这时候就会出现如下图的情况,二个服务器的server-uuid 是相同的,因为是克隆过来的。这时候运行 SHOW SLAVE STATUS 就会出现 Slave_IO_Running 为 No,而Slave_SQL_Running为Yes。说明IO同步出错,在Last_IO_Error 字段可以看到错误信息,如下。错误信息的意思就是server-uuid 重复了。也就是下图展示的效果。
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work。
如果出现这种情况,需要将 /var/lib/mysql 文件下的生成uuid 的文件删除,然后再重新启动 mysql 服务,就会重新在生成一个 server-uuid,在下图2中 也 显示了这个重新生成的server-uuid。


如果你的从服务器不是克隆主服务器而是重新安装的,那么就不会出现这种情况。直接运行 SHOW SLAVE STATUS 命令,如下图。则表示同步成功


如果同步执行出错,作如下修改。
show variables like '%server_id%';
show master status;
STOP SLAVE;
set GLOBAL sql_slave_skip_counter=1;
start slave;
SHOW SLAVE STATUS;
若是
Slave_SQL_Running:No
这是由于 Exec_Master_Log_Pos主从机不一致导致的,首先保证同步之前的两个数据库的数据保持一致
解决方案
进入master
首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000094 | 33622483 | | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
找到Position的值
锁定主机中的mysql所有的表,打开mysql的全局锁
mysql> flush tables with read lock;
从机执行change_master_to的操作,修改position的值
解锁
mysql> unlock table;

5881

被折叠的 条评论
为什么被折叠?



