mysql双主配置

作者:李建生
归档:配置笔记
2020/01/02

1、服务器环境

主机A:10.5.11.50

主机B:10.5.11.51

2、配置

因操作系统的差别此配置文件可能有点差别

主机A上,vim /etc/my.cnf,添加:

[mysqld]

log-bin=mysql-bin

server-id=1 #服务id要和B不同

binlog_do_db=db1 #要同步的数据库 可以添加多个

主机B上,vim /etc/my.cnf,添加:

[mysqld]

log-bin=mysql-bin

server-id=2 #服务id要和A不同

binlog_do_db=db1  #要同步的数据库 可以添加多个

3、mysql数据库执行

mysql> show master status;

+------------------+----------+--------------+------------------+

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |   447 | db1     |         |

+------------------+----------+--------------+------------------+

#主机51

CHANGE MASTER TO

MASTER_HOST = '10.5.11.50', #另一台机器的地址

MASTER_PORT = 3306, #另一台机器的端口

MASTER_USER = '帐号',#另一台机器上第一步分配的用户名

MASTER_PASSWORD = '数据库密码', #另一台机器上第一步分配的密码

MASTER_LOG_FILE = 'mysql-bin.000001',#另一台机器上执行SHOW MASTER STATUS得到的文件名

MASTER_LOG_POS = 154; #另一台机器上执行SHOW MASTER STATUS得到的偏移量

在A上开启binlog,创建复制帐号

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 帐号@'%' IDENTIFIED BY '密码';

#主机 50

CHANGE MASTER TO

MASTER_HOST = '10.5.11.51', #另一台机器的地址

MASTER_PORT = 3306, #另一台机器的端口

MASTER_USER = '帐号',#另一台机器上第一步分配的用户名

MASTER_PASSWORD = '密码', #另一台机器上第一步分配的密码

MASTER_LOG_FILE = 'mysql-bin.000002',#另一台机器上执行SHOW MASTER STATUS得到的文件名

MASTER_LOG_POS = 154; #另一台机器上执行SHOW MASTER STATUS得到的偏移量

在B上开启binlog,创建复制帐号

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 帐号@'%' IDENTIFIED BY '密码';

4、开启同步

在A上 开启同步

mysql>start slave;

在B上 开启同步
mysql>start slave;


在A上执行查看同步状态

mysql> show slave status\G

*************************** 1. row ***************************

​        Slave_IO_State: Waiting for master to send event

​         Master_Host: 192.168.1.202

​         Master_User: user1

​         Master_Port: 3306

​        Connect_Retry: 5

​       Master_Log_File: mysql-bin.000008

​     Read_Master_Log_Pos: 106

​        Relay_Log_File: mysqld-relay-bin.000001

​        Relay_Log_Pos: 251

​    Relay_Master_Log_File: mysql-bin.000008

​       Slave_IO_Running: Yes

​      Slave_SQL_Running: Yes

​       Replicate_Do_DB: 

​     Replicate_Ignore_DB: 

​      Replicate_Do_Table: 

​    Replicate_Ignore_Table: 

   Replicate_Wild_Do_Table: 

 Replicate_Wild_Ignore_Table: 

​          Last_Errno: 0

​          Last_Error: 

​         Skip_Counter: 0

​     Exec_Master_Log_Pos: 106

​       Relay_Log_Space: 552

​       Until_Condition: None

​        Until_Log_File: 

​        Until_Log_Pos: 0

​      Master_SSL_Allowed: No

​      Master_SSL_CA_File: 

​      Master_SSL_CA_Path: 

​       Master_SSL_Cert: 

​      Master_SSL_Cipher: 

​        Master_SSL_Key: 

​    Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

​        Last_IO_Errno: 0

​        Last_IO_Error: 

​        Last_SQL_Errno: 0

​        Last_SQL_Error:

A中的Slave_IO_Running 和 Slave_SQL_Running两个值都是YES,说明配置成功了。 

B的配置就不贴了,也是配置成功的。

如果主从不同步 重启服务 然后进入mysql命令行执行下边命令 执行完成之后  执行 show slave status\G 查看状态

stop slave;

set global sql_slave_skip_counter=1;

start slave;

CHANGE MASTER TO

MASTER_HOST = '10.5.11.50',

MASTER_PORT = 3306, 

MASTER_USER = 'root',

  MASTER_PASSWORD = 'password',

MASTER_LOG_FILE = 'mysql-bin.000005',

MASTER_LOG_POS = 62427731; 

  GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO root@'%' IDENTIFIED BY 'password';
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容