MySQL双主同步

只粘实现的主要步骤,详细步骤见百度mysql

主库A 172.21.25.71sql

建立一个用于slave和master通讯的用户帐号
        打开mysql会话shell>mysql -hlocalhost -uname -ppassword
        建立用户并受权:用户:slave密码:slave123456
        mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave123456';#建立用户
        mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';#分配权限
        mysql>flush privileges;   #刷新权限
得到master二进制日志文件名及位置
		查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):
mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000041 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

 

使用master分配的用户帐号读取master二进制日志
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.172',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    启用slave服务
        mysql>start slave;
    查看状态
        mysql> show slave status\G;

    主库重启

主库B 172.21.25.72shell

操做步骤通上数据库

mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000019 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

使用master分配的用户帐号读取master二进制日志
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.171',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    启用slave服务
        mysql>start slave;
    查看状态
        mysql> show slave status\G;

其余配置解释socket

replicate-do-db 设定须要复制的数据库(多数据库使用逗号,隔开)

replicate-ignore-db 设定须要忽略的复制数据库 (多数据库使用逗号,隔开)

replicate-do-table 设定须要复制的表

replicate-ignore-table 设定须要忽略的复制表

replicate-wild-do-table 同replication-do-table功能同样,可是能够通配符

replicate-wild-ignore-table 同replication-ignore-table功能同样,可是能够加通配符
replicate-wild-do-table=db_name.% 只复制哪一个库的哪一个表

replicate-wild-ignore-table=mysql.% 忽略哪一个库的哪一个表


问题处理整理 ====================================
#跳过一个事务
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        

 

附录spa

配置文件日志

my-71.cnfcode

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=1
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 双主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test


# INNODB
innodb_buffer_pool_size=60G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535

my-72.cnform

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=2
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 双主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test

# INNODB
innodb_buffer_pool_size=20G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535
相关文章
相关标签/搜索