只粘實現的主要步驟,詳細步驟見百度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