来自:http://blog.csdn.net/u013256816/article/details/52536283
1. 了解主备配置过程原理。
http://blog.csdn.net/u013256816/article/details/52536283
2. 修改配置文件
主:
[mysqld]
log_bin=mysql-bin
server_id =1
备:
[mysqld]
log_bin=mysql-bin
server_id =2
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
3. 新建授权用户
GRANT REPLICATION SLAVE,REPLICATION CLIENT on *.* to slaveuser@'192.168.15.%' IDENTIFIED BY 'HU@jiang';
GRANT REPLICATION SLAVE,REPLICATION CLIENT on *.* to slaveuser@'localhost' IDENTIFIED BY 'HU@jiang';
4. 启用slave数据库
CHANGE MASTER TO
MASTER_HOST='192.168.15.31',
MASTER_USER='slaveuser',
MASTER_PASSWORD='HU@jiang',
MASTER_LOG_FILE='mysql-bin.000003', # 通过 show master statusG; 确认MASTER_LOG_FILE 值
MASTER_LOG_POS=0; #日志从哪里开始读
start slave; >>启用
stop slave; >>停用
5. 查看slave运行状况: 确认
show master statusG;
show slave statusG
Slave_IO_Running=Yes Slave_SQL_Running=Yes
slave的I/O和SQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。
6. 确认数据是否同步成功
Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running是No表明slave还没有开始复制过程。
日志的位置为4而不是0,这是因为0只是日志文件的开始位置,并不是日志位置。实际上,MySQL知道的第一个事件的位置是4。
show databases;
use tables;
期间故障 (查看日志:):
1.确认日志路径。
mysql> show variables like "log_error";
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| log_error | /usr/local/mysql/data/VM-Linux-T.err |
+---------------+--------------------------------------+
1 row in set (0.00 sec)
2. 查看同步失败错误日志。
2017-12-26 12:36:27 2043 [ERROR] Slave I/O: 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. Error_code: 1593
mysql> show variables like '%server_uuid%';
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| server_uuid | 3da490f8-cf87-11e7-a172-005056aa569a |
+---------------+--------------------------------------+
[root@VM-Linux-T ~]# find / -name auto.cnf
/usr/local/mysql/data/auto.cnf
[root@VM-Linux-T ~]# vi /usr/local/mysql/data/auto.cnf
[root@VM-Linux-T ~]# service mysqld restart
mysql> show variables like '%server_uuid%';
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| server_uuid | 3da490f8-cf87-11e7-a172-005056aa569b |
+---------------+--------------------------------------+
1 row in set (0.00 sec)