Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

1,164

Mysql:主从配置

  • 2013-06-10
  • 暂无评论

由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
1、同步Master
给主机赋予从机权限,每台从机都要赋予权限

GRANT REPLICATION SLAVE ON *.* TO 'user'@'ip/domain' IDENTIFIED BY 'pass';

每个同步服务器都必须设定一个唯一的编号,否则同步就不能正常运行了。
接下来开始修改 my.cnf,增加以下几行:

server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db=MySQL #不需要备份的数据库,多个写多行,这就避免了Master上的权限设置等被同步到Slave上,如果对这方面没有限制,就可以不设置这个参数。

备份Master上的数据
例如:首先执行如下SQL语句:

MySQL>FLUSH TABLES WITH READ LOCK;

不要退出这个终端,否则这个锁就不生效了;接着导出数据,可以直接打包压缩数据文件,也可以使用MySQLdump工具来做,推荐前者的方法,这样更为快捷简便。

root$cd /usr/local/MySQL
root$tar zcf data.tar.gz ./data (在这里也可能是 "var" 等其它实际存放数据文件的目录,根据实情而定)

然后将这些数据拷贝到Slave服务器上,解开,设置好正确的权限及属主等;之后,执行 "UNLOCK TABLES" 语句来释放锁。
2、设置Slave
开始修改 my.cnf,增加以下几行:

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

3、验证
Master验证:show master status;
Slave验证:show slave status;



back up ↑

无觅相关文章插件,快速提升流量