A-A+
Mysql主从同步
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就表示成功了
评论已关闭!