Mysql双主同步

解决数据库瓶颈问题
两台服务器可以同时读写数据库
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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值