MySQL 提供 Master/Slave 机制让您轻易的完成多个 MySQL Server 之间的数据同步,有了多个数据同步的 MySQL Server 在管理上会较有弹性,例如你可以建置备援主机或是进行负载平衡等等。但是要注意:一台 Master Server 可以拥有很多台 Slave Server;但一台 Slave Server 只可对应到一台 Master Server
1.环境
master 192.168.1.100
slave 192.168.1.101
2.配置Master服务器
1)添加用于同步的mysql帐号
grant replication slave on *.* to 'master'@'192.168.1.101' identified by '123456'
2)修改my.cnf
以下内容:
[mysqld]
log-bin=mysql-bin
server-id=1
log-slave-updates
binlog_do_db = mydb #定义需要同步的库
binlog_ignore_db = mysql #不需要同步
3)查看master状态
show master status\G;
SHOW PROCESSLIST\G
显示以下内容,文件名在配置slave第二的时候需要用到:
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 107
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
3.配置Slave服务器
1)修改my.cnf
以下内容:
[mysqld]
server-id=2
注意在导出数据之前先对主数据库进行READ LOCK,以保证数据的一致性
flush tables with read lock;
2)必须要明确的告诉 Slave Server 哪一台 Server 才是 Master Server,使用以下的指令即可
slave stop;
CHANGE MASTER TO MASTER_HOST=’192.168.1.100′,MASTER_PORT=3306, MASTER_USER=’matser’,MASTER_PASSWORD=’123456’,Master_Log_File=’mysql-bin.000001′,MASTER_LOG_POS=107;
slave start;
说明:mysql-bin.000001是主服务器当前日志文件名,必须设置
3)查看slave状态
show slave status\G;
SHOW PROCESSLIST\G
显示以下内容时,主从服务器配置成功
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: 必须为 Yes
Slave_SQL_Running:必须为 Yes
一切都没问题了,恢复些操作
unlock tables;
4)手动同步数据,会自动建立数据库,需要设置用户master相应权限
LOAD DATA FROM MASTER;
完成
如果你从服务器曾经做过主从,这里就要在从服务器上做下操作
salve stop;
reset slave;
然后再一次输入:
CHANGE MASTER TO MASTER_HOST=’192.168.1.100′,MASTER_PORT=3306, MASTER_USER=’matser’,MASTER_PASSWORD=’123456’,Master_Log_File=’mysql-bin.000001′,MASTER_LOG_POS=107;
slave start;
转载请注明:IT运维空间 » linux » LINUX下配置master/slave主从
发表评论