溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL主從復(fù)制操作

發(fā)布時(shí)間:2020-05-31 19:18:38 來源:網(wǎng)絡(luò) 閱讀:1116 作者:cy_lyh 欄目:數(shù)據(jù)庫(kù)

前期準(zhǔn)備:兩臺(tái)安裝Mysql服務(wù)器,或者在一臺(tái)服務(wù)器上部署兩個(gè)Mysql實(shí)例。

       為了避免出現(xiàn)不必要的錯(cuò)誤,Mysql版本最好保持一致。

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

|服務(wù)器地址    |主機(jī)名   |數(shù)據(jù)庫(kù)版本  |數(shù)據(jù)庫(kù)端口 |server_id |角色    |

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

|192.168.175.248 |Mysql-248 |Mysql-5.6.30 |3306     |1      |主庫(kù)Master|

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

|192.168.175.249 |Mysql-249 |Mysql-5.6.30 |3306     |2      |從庫(kù)Slave |

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


一、 主庫(kù)配置:

1. 開啟二進(jìn)制日志,配置server_id(需要重啟生效)。

[root@Mysql-248 mysql-5.6.30]# grep -A3 'mysqld' my.cnf 

[mysqld]

port = 3306

server_id = 1

log-bin=mysql-bin

檢驗(yàn)二進(jìn)制日志狀態(tài),ON為打開:

mysql> show variables like 'log_bin' ;

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

| Variable_name | Value |

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

| log_bin     | ON   |

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

1 row in set (0.00 sec)


2. 在主庫(kù)建立Mysql復(fù)制用戶。

mysql> grant replication slave on *.* to 'repl_user'@'192.168.175.%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


3. 在主庫(kù)上鎖表備份,然后解鎖。

鎖表,鎖表后當(dāng)前窗口暫時(shí)不能關(guān)閉

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.01 sec)

查看master狀態(tài)信息:

mysql> show master status;

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

| File         | Position | Binlog_Do_DB| Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000001 |    414 |         |            |             |

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

1 row in set (0.00 sec)

  新建ssh窗口,備份數(shù)據(jù)庫(kù):

[root@Mysql-248 ~]# mysqldump -uroot -p'qwe123``' -A > /tmp/master248.sql

  備份完成后,在原先窗口中解鎖:

mysql> unlock tables;

Query OK, 0 rows affected (0.00 sec)



二、從庫(kù)配置:

1. 配置從庫(kù)server_id與relay-log(需要重啟生效)。

  注意:server_id必須是唯一的,不能與其他mysql庫(kù)相同。從庫(kù)無需開啟二進(jìn)制日志。

[root@Mysql-249 mysql-5.6.30]# grep mysqld -A3 my.cnf 

[mysqld]

port = 3306

server_id = 2

relay-log = mysql-relay-bin


2. 將主庫(kù)的備份拷貝到本機(jī),導(dǎo)入數(shù)據(jù)庫(kù)。

拷貝備份:

[root@Mysql-249 mysql-5.6.30]# scp root@192.168.175.248:/tmp/master248.sql /tmp/

root@192.168.175.248's password: 

master248.sql       

導(dǎo)入:

[root@Mysql-249 mysql-5.6.30]# mysql -uroot -p'qwe123``' < /tmp/master248.sql 

Warning: Using a password on the command line interface can be insecure.


3. 指定master服務(wù)器信息,開啟slave。

指定master信息:

mysql> change master to \

   -> master_host='192.168.175.248',

   -> master_user='repl_user',

   -> master_password='123456',

   -> master_log_file='mysql-bin.000001',

   -> master_log_pos=414;

Query OK, 0 rows affected, 2 warnings (0.03 sec)

開啟slave:

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)


三、檢驗(yàn)主從復(fù)制:

1. 在從庫(kù)使用show slave status\G,查詢主庫(kù)信息以及IO進(jìn)程、SQL進(jìn)程工作狀態(tài)。

mysql> show slave status\G 

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

              Slave_IO_State: Waiting for master to send event

                 Master_Host: 192.168.175.248

                 Master_User: repl_user

                 Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000001

            Read_Master_Log_Pos: 414

               Relay_Log_File: mysql-relay-bin.000002

                Relay_Log_Pos: 283

          Relay_Master_Log_File: mysql-bin.000001

              Slave_IO_Running: Yes

             Slave_SQL_Running: Yes

             ......


1 row in set (0.00 sec)

查詢結(jié)果顯示Slave_IO_Running: Yes,Slave_SQL_Running: Yes,表示當(dāng)前主從復(fù)制狀態(tài)正常。


2. 在master新建數(shù)據(jù)庫(kù),在slave查詢,測(cè)試主從復(fù)制效果。

Master建庫(kù)建表。

mysql> create database cubix character set utf8;

Query OK, 1 row affected (0.00 sec)

mysql> use cubix

Database changed

mysql> create table T1 (id int);

Query OK, 0 rows affected (0.02 sec)

mysql> insert into T1 VALUES ('1');

Query OK, 1 row affected (0.00 sec)

mysql> insert into T1 VALUES ('2');

Query OK, 1 row affected (0.00 sec)

mysql> insert into T1 VALUES ('3');

Query OK, 1 row affected (0.01 sec)



Slave查詢新建的庫(kù)。

mysql> show databases;

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

| Database       |

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

| information_schema|

| cubix         |

| mysql         |

| performance_schema|

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

6 rows in set (0.00 sec)

mysql> use cubix

Database changed

mysql> show tables;

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

| Tables_in_cubix|

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

| T1         |

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

1 row in set (0.00 sec)

mysql> select * from T1;

+------+

| id  |

+------+

|   1 |

|   2 |

|   3 |

+------+

3 rows in set (0.00 sec)

檢查發(fā)現(xiàn)在主庫(kù)上新增的數(shù)據(jù),在從庫(kù)上也有了,也可以證明主從同步正常。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI