A-A+

Mysql主从同步

2016年11月09日 Mysql 暂无评论 阅读 367 次浏览 次

1.设置master

修改 /etc/my.cnf

在[mysqld]部分添加

server-id=1     //数据库ID号
log-bin=mysql-bin   //启用二进制日志
log-bin=/var/log/mysql/updatelog //日志路径
log-slave-updates  //把更新记录写到二进制文件
slave-skip-errors=all  //有错误也继续复制

可选参数

binlog-do-db=databasename1,databasename2          //需要复制的数据库,多个库逗号分割
binlog-ignore-db=databasename1,databasename2      //不需要复制的数据库 ,多个库逗号分割

设置访问master端的用户

grant replication slave on *.* to 'repl'@'%' identified by 'xxxx';

执行show master status;查看 master状态,值要记住,后面需要

 mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 |    43827 | discuz       | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

2.设置slave

修改 /etc/my.cnf

server-id = 2 
log-bin=mysql-bin 
master-connect-retry=60     //如果发现主服务器断线,重新连接的时间差; 
replicate-do-db=discuz      //需要备份的数据库 
replicate-ignore-db=mysql   //不需要备份的数据库; 
slave-skip-errors=all  //有错误也继续复制
relay_log= mysql-relay-bin  //中继日志
log_slave_updates=1    //将复制事件写进自己的二进制日志


master-host = xxxxxx  // master地址    5.1版本后无效
master-user = repl          // 用户          5.1版本后无效
master-password = ******    // 密码          5.1版本后无效
master-port = 3306          //端口           5.1版本后无效

mysql5.1开始不支持 master-host master-user master-password 参数,需要在数据库里执行

change master to master_user='repl',
master_password='' ,
master_host='',
master_log_file='mysql-bin.000008',
master_log_pos=43827;

注意:需要先停止slave,否则会报错

在slave服务器的mysql启动slave

slave start;
show slave status\G;

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes

这两个值为yes就表示成功了

 

标签:

评论已关闭!

Copyright © 香港虚拟主机_美国虚拟主机_香港服务器_美国服务器租用托管 保留所有权利.   Theme  Ality 蜀ICP备14006632号-1

用户登录