只粘实现的主要步骤,详细步骤见百度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