Mysql 5.6庫級表級複製的搭建
0. 架構資訊
主庫:192.168.56.100
從庫:192.168.56.200
1. 主庫操作
關閉資料庫
[root@localhost test]# mysqladmin -uroot -p shutdown
Enter password:
修改配置檔案
[root@localhost test]# vim /etc/my.cnf
[mysqld]
server-id=100
log-bin=/var/lib/mysql/mysqld-bin
binlog_format=row
# 複製的資料庫
binlog-do-db=test
啟動資料庫
[root@localhost test]# mysqld_safe --defaults-file=/etc/my.cnf &
可以透過下面命令檢視要複製的資料庫
[root@localhost test]# mysql -uroot -p
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysqld-bin.000003 | 120 | test | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
建立複製使用者
mysql> GRANT REPLICATION SLAVE ON *.* to 'repliform'@'%' identified by 'repliform';
Query OK, 0 rows affected (0.00 sec)
2. 從庫操作
關閉資料庫
[root@localhost tmp]# mysqladmin -uroot -p shutdown
Enter password:
增加複製引數到配置檔案中
[root@localhost tmp]# vim /etc/my.cnf
[mysqld]
server-id=200
log-bin=/var/lib/mysql/mysqld-bin
binlog_format=row
# 應用複製的表
replicate_do_table= test.emp
replicate_do_table= test.dept
配置複製
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.56.100',
-> MASTER_PORT=3306,
-> MASTER_USER='repliform',
-> MASTER_PASSWORD='repliform',
-> master_log_file='mysqld-bin.000001',
-> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.06 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.56.100
Master_User: repliform
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: dept.dept,dept.emp
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 120
Relay_Log_Space: 120
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_UUID:
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.100
Master_User: repliform
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 901
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 1065
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: test.dept,test.emp
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 901
Relay_Log_Space: 1242
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:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 100
Master_UUID: 04ebf096-10cf-11e6-8077-080027e76b2b
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
3. 測試同步效果
在主庫上面插入資料
mysql> insert into emp values (60), (70);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> insert into dept values (60), (70);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
在從庫上面檢視同步效果
mysql> select * from test.emp;
+------+
| id |
+------+
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
| 70 |
+------+
7 rows in set (0.00 sec)
mysql> select * from test.dept;
+--------+
| deptno |
+--------+
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
| 70 |
+--------+
7 rows in set (0.00 sec)
主庫:192.168.56.100
從庫:192.168.56.200
1. 主庫操作
關閉資料庫
[root@localhost test]# mysqladmin -uroot -p shutdown
Enter password:
修改配置檔案
[root@localhost test]# vim /etc/my.cnf
[mysqld]
server-id=100
log-bin=/var/lib/mysql/mysqld-bin
binlog_format=row
# 複製的資料庫
binlog-do-db=test
啟動資料庫
[root@localhost test]# mysqld_safe --defaults-file=/etc/my.cnf &
可以透過下面命令檢視要複製的資料庫
[root@localhost test]# mysql -uroot -p
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysqld-bin.000003 | 120 | test | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
建立複製使用者
mysql> GRANT REPLICATION SLAVE ON *.* to 'repliform'@'%' identified by 'repliform';
Query OK, 0 rows affected (0.00 sec)
2. 從庫操作
關閉資料庫
[root@localhost tmp]# mysqladmin -uroot -p shutdown
Enter password:
增加複製引數到配置檔案中
[root@localhost tmp]# vim /etc/my.cnf
[mysqld]
server-id=200
log-bin=/var/lib/mysql/mysqld-bin
binlog_format=row
# 應用複製的表
replicate_do_table= test.emp
replicate_do_table= test.dept
配置複製
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.56.100',
-> MASTER_PORT=3306,
-> MASTER_USER='repliform',
-> MASTER_PASSWORD='repliform',
-> master_log_file='mysqld-bin.000001',
-> master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.06 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.56.100
Master_User: repliform
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: dept.dept,dept.emp
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 120
Relay_Log_Space: 120
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: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 0
Master_UUID:
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.56.100
Master_User: repliform
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 901
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 1065
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table: test.dept,test.emp
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 901
Relay_Log_Space: 1242
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:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 100
Master_UUID: 04ebf096-10cf-11e6-8077-080027e76b2b
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
3. 測試同步效果
在主庫上面插入資料
mysql> insert into emp values (60), (70);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> insert into dept values (60), (70);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
在從庫上面檢視同步效果
mysql> select * from test.emp;
+------+
| id |
+------+
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
| 70 |
+------+
7 rows in set (0.00 sec)
mysql> select * from test.dept;
+--------+
| deptno |
+--------+
| 10 |
| 20 |
| 30 |
| 40 |
| 50 |
| 60 |
| 70 |
+--------+
7 rows in set (0.00 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-2142726/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL:5.6 升級 5.7MySql
- MySQL複習筆記(05):MySQL表級鎖和行級鎖MySql筆記
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- DM7資料複製之資料庫級複製資料庫
- centos7 mysql5.6升級5.7CentOSMySql
- mysql5.6主主複製及keepalived 高可用MySql
- mysql主從複製搭建MySql
- Welcome to MySQL Workbench:MySQL 複製表MySql
- MySQL-主從複製之搭建從資料庫MySql資料庫
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MySQL->複製表[20180509]MySql
- MySQL 5.6的表壓縮MySql
- mysql 資料表的複製案例MySql
- MySQL5.7主從複製-半同步複製搭建MySql
- mysql主從複製的理解和搭建MySql
- 利用 ChangeStream 實現 Amazon DocumentDB 表級別容災複製
- DM7資料複製之模式級複製模式
- 【Mongo】單節點升級為複製集再升級為分片加複製集Go
- 簡單搭建MySQL主從複製MySql
- Mysql主從複製原理及搭建MySql
- MySQL 主從複製過濾新增庫表過濾方案MySql
- Mysql鎖之行級鎖和表級意向鎖MySql
- mysql 5.6 升級 到 5.7 的二進位制升級方法 另一個簡便思路.MySql
- 開心檔之MySQL 複製表MySql
- 生產環境中MySQL複製的搭建KPMySql
- mysql 5.7 主從複製搭建及原理MySql
- docker-compase搭建mysql主從複製DockerMySql
- MySQL 複製全解析 Part 9 一步步搭建基於GTID的MySQL複製MySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- 淺複製、深複製與序列化【初級Java必需理解的概念】Java
- 輕量級流量複製goreplay實踐Go
- mysql中複製表結構的方法小結MySql
- mysql複製中臨時表的運用技巧MySql
- php5.6 升級至7.2.7PHP
- 複製資訊記錄表|全方位認識 mysql 系統庫MySql
- mysql複製表結構和資料MySql
- 基於 Docker 的 MySQL 主從複製搭建(真正弄懂)DockerMySql
- MySQL 5.7 基於GTID搭建主從複製MySql
- Docker Compose搭建MySQL主從複製叢集DockerMySql