测试环境:
操作系统:centos 5.5
mysql版本:5.1.30
网上找了好多配置说明,我照搬来都有问题,最后发现很多都有些小错误,我综合了一下,其中也有自己的一些想法。就成了如下面这样的了。希望对看到这篇配置说明的朋友也有所帮助。
第一步:
在master上创建用于同步的用户
GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER ON *.* TO backup@’192.168.0.246′ IDENTIFIED by ‘backup’;
第二步:
配置master机的my.cnf,在mysqld段加上:
server-id = 1588
replicate-same-server-id = 1
relay-log = mysql-relay-bin
log-bin = mysql-bin
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
第二步:
配置slave机的my.cnf,在mysqld段加上:
replicate-same-server-id = 1588
master-host = 192.168.0.245
master-user = backup
master-password = backup
relay-log = relay-bin
relay-log-index = relay-bin
replicate-ignore-db = mysql
replicate-ignore-db = information_schema
测试:在slave机上运行:show slave status/G; 显示为如下面这样就OK!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
…
Seconds_Behind_Master: 0
异常处理:
一、
Slave_IO_Running: NO
Slave_SQL_Running: Yes
检查用户权限、服务器ID
二、
Slave_IO_Running: Yes
Slave_SQL_Running: NO
在master上
mysql> show master status
-> ;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000012 | 106 | | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
记住查到的两个值 。
转到slave上
mysql>slave stop;
mysql>change master to master_host=’192.168.0.245′, master_user=’backup’, master_password=’backup’, master_port=3306, master_log_file=’mysql-bin.000012′, master_log_pos=106;
mysql>slave start;
再查看状态:
mysql>show slave status/G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
…
Seconds_Behind_Master: 0
OK! 配置完成!
ps:几个注意项目
1.更改从数据库的配置无须从/etc/my.cnf里变更,直接执行change master即可。
2.由于是采用的binlog同步的方式,只能同步执行binlog里面的内容。原有的结构和数据需要在同步之前导入到从库中。
转载请注明:苏demo的别样人生 » linux下mysql主从配置