关闭

Mysql双主同步

标签: mysql数据库应用服务器linux
1139人阅读 评论(0) 收藏 举报
分类:
解决数据库瓶颈问题
两台服务器可以同时读写数据库
A B两台服务器 
A和B需要拥有一个同名的数据库
同步账号设置
首先要在两台服务器上各新增加一个可登陆的账号。
A端25
mysql
grant replication slave,file on *.* to 'repl1'@'192.168.1.26' identified by '521521';
B端26
mysql
grant replication slave,file on *.* to 'repl2'@'192.168.1.25' identified by '521521';

修改my.cnf主配置文件
vim /etc/my.cnf        放的位置不能错
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risk
ssymbolic-links=0
log-bin=mysql-bin  #启动二进制日志系统
server-id=1              #本机数据库ID标示为主,另一为2
binlog-do-db=test   #二进制需同步的数据库名
binlog-ignore-db=mysql   #避免同步用户数据库配置
replicate-do-db=test    #同步数据库的名称
replicate-ignore-db=mysql   #屏蔽对mysql数据库的同步
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1           B端配置2
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


mysql -u root -p 
flush tables with read lock;    #锁定表格
service mysqld restart
mysql 
show master status\G  #查看主服务器同步状态
A端是这样的
mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 106
    Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
B端是这样的
mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000002
        Position: 106
    Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

#设定同步服务器ip 用户名与口令和日志文件名与show master status\G 输出结果一致。
A端:
mysql
change master to master_host='192.168.1.26', master_user='repl2', master_password='521521', master_log_file='mysql-bin.000002', master_log_pos=106;
B端:
mysql
change master to master_host='192.168.1.25', master_user='repl1', master_password='521521', master_log_file='mysql-bin.000001', master_log_pos=106;


start slave; 两段互为辅助
show slave status\G  验证配置
unlock tables;  解锁验证

1.  Master_host 指的是 主服务器的地址。 

2. Master_user 指的是主服务器上用来复制的用户。  从服务器会用此账号来登录主服务。进行复制。

3. Master_log_file 就是前面提到的, 主服务器上的日志文件名.

4. Read_Master_log_pos 就是前面提到的主服务器的日志记录位置, 从服务器根据这两个条件来选择复制的文件和位置。

5. Slave_IO_Running 指的就是从服务器上负责读取主服务器的线程工作状态。 从服务器用这个专门的线程链接到主服务器上,并把日志拷贝回来。

6. Slave_SQL_Running 指的就是专门执行sql的线程。 它负责把复制回来的Relaylog执行到自己的数据库中。 这两个参数必须都为Yes 才表明复制在正常工作。


此时你在A或者B端对test数据库里的内容进行修改,另一端会同步你的更改










0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22616次
    • 积分:494
    • 等级:
    • 排名:千里之外
    • 原创:26篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条
    文章存档