您的位置:首页 > 数据库 > MySQL

不同服务器上mysql如何实现同步备份

2013-05-02 17:59 555 查看
不同服务器上的mysql数据库实现同步备份的过程如下:

1.服务器状态:
服务器A:192.168.1.1
服务器B:192.168.1.2
2.创建同步用户:
主机域A:192.168.1.2用户名A:sync_a密码A:aaa
主机域B:192.168.1.1用户名B:sync_b密码B:bbb
至少分配以下权限grantreplicationslave。
3.执行flushprivileges。
4.停止MySQL。
5.配置my.cnf(my.ini)。
服务器A服务器B
user=mysql

log-bin=mysql-bin

server-id=1

binlog-do-db=test

binlog-ignore-db=mysql

replicate-do-db=test

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1user=mysql

log-bin=mysql-bin

server-id=2

binlog-do-db=test

binlog-ignore-db=mysql

replicate-do-db=test

replicate-ignore-db=mysql

log-slave-updates

slave-skip-errors=all

sync_binlog=1

注意
server-id必须唯一。
binlog-do-db和replicate-do-db表示需要同步的数据库。
binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库。
请不要加入以下命令,该命令并不会解决uid跳号的问题,恰恰相反以下两行命令才是导致uid跳号的罪魁祸首:
auto_increment_increment=2

auto_increment_offset=1

6.重新启动MySQL。
7.进入MySQL控制台:
服务器A:
showmasterstatusG

flushtableswithreadlock

服务器B:
showmasterstatusG

flushtableswithreadlock;

同时记录下两台服务器的File和Position,此处假设:
A:File:mysql-bin.000001
Position:001
B:File:mysql-bin.000002
Position:002
服务器A:
changemasterto

->master_host='192.168.1.2',

->master_user='sync_b',

->master_password='bbb',

->master_log_file='mysql-bin.000002',

->master_log_pos=002;

服务器B:
changemasterto

->master_host='192.168.1.1',

->master_user='sync_a',

->master_password='aaa',

->master_log_file='mysql-bin.000001',

->master_log_pos=001;

此处填写的数据完全相反。
8.执行showprocesslistG查看是否同步成功。
本文就介绍到这里,谢谢大家的支持!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: