MySQL主從是如何實現(xiàn)切換的

下文主要給大家?guī)鞰ySQL主從是如何實現(xiàn)切換的,希望MySQL主從是如何實現(xiàn)切換的能夠帶給大家實際用處,這也是我編輯這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、嵩明網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

在一主兩從環(huán)境中,模擬測試當(dāng)主庫宕機(jī)后的切換步驟

我的系統(tǒng)為 CentOS6.7 x64

mysql 版本為 5.5.33 并通過二進(jìn)制包安裝

上個截圖,三臺系統(tǒng)和 mysql 都是同樣的版本,同樣步驟的安裝

[root@mysql-01 ~]# mysql -V

mysql  Ver 14.14 Distrib 5.5.33, for linux2.6 (x86_64) using readline 5.1

[root@mysql-01 ~]# uname -r

2.6.32-573.el6.x86_64

三臺環(huán)境的主機(jī)名和 ip 地址,職務(wù)

mysql-01   192.168.240.137   Master

mysql-02   192.168.240.138   Slave-01

msyql-03   192.168.240.139   Slave-02

MySQL主從是如何實現(xiàn)切換的

Master上的操作

將 master 192.168.240.137 關(guān)機(jī),模擬真實場景中的宕機(jī)

[root@mysql-01 ~]# /etc/init.d/mysqld stop

Shutting down MySQL... SUCCESS!

[root@mysql-01 ~]# lsof -i :3306

[root@mysql-01 ~]#

Slave-01上的操作

確保 slave 數(shù)據(jù)庫上已經(jīng)執(zhí)行了 relay log 中的全部命令

在 slave 上執(zhí)行 show processlist; 命令,返回結(jié)果如下,說明更新執(zhí)行完畢

Slave has read all relay log; waiting for the slave I/O thread to update it

在每個從庫上行 stop slave io_thread; 停止 IO 線程

mysql> show processlist;

mysql> stop slave io_thread;

編輯 /etc/my.cnf 文件,在 [ mysqld ] 目錄下,開啟 log-bin=mysql-bin 選項

并且注意 server-id ,不能和 Slave-02 上的 server-id 相同

[root@mysql-02 ~]# vim /etc/my.cnf

log-bin=mysql-bin

server-id=2

編輯完后保存退出,重啟 mysql 服務(wù)

[root@mysql-02 ~]# /etc/init.d/mysqld restart

Shutting down MySQL. SUCCESS!

Starting MySQL.. SUCCESS!

在 Slave-01 上登錄 mysql

執(zhí)行 reset master 命令,將 Slave-01 升級為 Master

mysql> reset master;

Query OK, 0 rows affected (0.01 sec)

并查看 master 狀態(tài)

mysql> show master status\G

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

            File: mysql-bin.000001

        Position: 107

    Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

創(chuàng)建一個用于同步的賬號并刷新

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

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

編輯 /etc/hosts 文件,添加 ip 地址及對應(yīng)的主機(jī)名

(我使用的的 vmware 的 NAT 模式)

[root@mysql-02 ~]# vim /etc/hosts

192.168.240.138   mysql-02

192.168.240.139   mysql-03

在 Slave-02 上的操作

同樣先添加 ip 地址及對應(yīng)的主機(jī)名

[root@mysql-03 ~]# vim /etc/hosts

192.168.240.138   mysql-02

192.168.240.139   mysql-03

測試剛才創(chuàng)建的 yuci 用戶能否在 Slave-02 上登錄 Slave-01 的數(shù)據(jù)庫

[root@mysql-03 ~]# mysql -uyuci -p123456 -h292.168.240.138

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 5

。。。。。。。。。。。。

mysql>

yuci 用戶登錄成功,說明可以使用該賬號進(jìn)行數(shù)據(jù)同步

使用 root 用戶登錄 mysql 服務(wù),查看更新是否全部完成

[root@mysql-03 ~]# mysql -uroot -p123456

mysql> show processlist;

Slave has read all relay log; waiting for the slave I/O thread to update it

停止 slave 服務(wù)

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)

輸入主庫信息以及用于同步的賬號,注意 log-file和log-pos,這兩個值是之前在 Slave-01 上執(zhí)行 show maste status\G 的返回值

mysql> CHANGE MASTER TO

    -> MASTER_HOST='192.168.240.138',

    -> MASTER_PORT=3306,

    -> MASTER_USER='yuci',

    -> MASTER_PASSWORD='123456',

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

    -> MASTER_LOG_POS=107;

Query OK, 0 rows affected (0.01 sec)

開啟 slave 服務(wù)

mysql> start slave;

Query OK, 0 rows affected (0.00 sec)

查看 slave 狀態(tài)的 IO、SQL線程,兩個 yes 說明切換完成

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

到此為止主從切換的操作已經(jīng)全部完成,Slave-01 已經(jīng)升級為 Master 它的從云服務(wù)器是 Slave-02

在 Slave-01 上創(chuàng)建一個新的數(shù)據(jù)庫,看看是否能夠同步

Slave-01 上

mysql> create database tongbu;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

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

| Database        |

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

| information_schema |

| mysql          |

| performance_schema |

| tongbu        |         

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

5 rows in set (0.00 sec)

Slave-02 上

mysql> show databases;

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

| Database       |

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

| information_schema |

| mysql         |

| performance_schema |

| tongbu        |

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

5 rows in set (0.00 sec)

對于以上關(guān)于MySQL主從是如何實現(xiàn)切換的,大家是不是覺得非常有幫助。如果需要了解更多內(nèi)容,請繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會喜歡上這些內(nèi)容的。

新聞名稱:MySQL主從是如何實現(xiàn)切換的
分享網(wǎng)址:http://bm7419.com/article10/gihsdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、做網(wǎng)站、響應(yīng)式網(wǎng)站自適應(yīng)網(wǎng)站、動態(tài)網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營