天天看點

如何在30分鐘内搭建雙節點的Mysql主備模式

作者:AI數智彙

前段時間有人問我Mysql的主備模式如何搭建,我就花30分鐘現場示範了一下,本文提供mysql安裝部署master+salve模式的全流程,主要示範2個節點的操作過程,多節點的操作方式一樣。理論方面的知識就不講了,直接上操作,希望對大家有所幫助。

如何在30分鐘内搭建雙節點的Mysql主備模式

一、安裝準備

1.準備centos7.0作業系統2台,要求IP、端口互通2.準備mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz安裝包3.準備libaio-0.3.109-13.el7.x86_64安裝包安裝步驟4.root使用者,一定要記得使用root使用者安裝,避免後續遇到其他問題不好解決

5.對Linux操作有基礎的操作經驗

二、MySql安裝步驟安裝libaio,mysql依賴libaio,是以安裝mysql前需要先保證系統已安裝libaio(1)檢查是否已安裝libaio,安裝前先檢查是個比較好的習慣。如果未安裝則需要參照step2安裝。

rpm -qa | grep libaio           

libaio-0.3.109-13.el7.x86_64

輸出如上内容表示伺服器已經安裝libaio(2)安裝libaio

sudo rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm           

驗證安裝:

rpm -qa | grep libaio           

(3)Mysql安裝建立MySQL使用者群組,并設定目錄的權限:建立使用者組

sudo groupadd mysql           

,如果已建立則跳過此步驟。建立使用者

sudo useradd -r -g mysql mysql           

設定使用者

sudo chown -R mysql:mysql /home/admin/local/mysql5.7           

設定目錄讀寫權限

sudo chmod 777  -R /home/admin/local/mysql5.7           

初始化mysql--basedir參數:mysql主目錄--datadir參數:mysql資料目錄

sudo /home/admin/local//mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/home/admin/local//mysql5.7 --datadir=/home/admin/local//mysql5.7/data           

這一步一定要注意執行後的結果,如果日志中有密碼相關的資訊提醒,則需要記住密碼,後續登入MySQL的時候需要。

複制mysql.server檔案

sudo cp /home/admin/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld           

修改配置檔案

編輯檔案/etc/my.cnf,如果沒有my.cnf,自己建立一個也可以,具體的配置内容如下圖。

建立日志檔案,并且再次設定目錄權限建立mysql.log檔案

sudo touch /home/admin/local/mysql5.7/logs/mysql.log           

設定使用者目錄權限

sudo chown -R mysql:mysql /home/admin/local/mysql5.7           

設定讀寫權限

sudo chmod 777  -R /home/admin/local/mysql5.7           

設定環境變量,編輯檔案/etc/profile,并在檔案末尾添加以下行:

export PATH=$PATH:/home/admin/local/mysql5.7/bin           

執行source /etc/profile,讓配置生效

啟停指令啟動mysql

sudo service mysqld start           

檢視啟動狀态

sudo service mysqld status           

如果輸出如下内容,則表示mysql運作正常。

SUCCESS! MySQL running (18601)           

至此,其中一台伺服器的Mysql已安裝完成,另外一台伺服器按照以上步驟安裝Mysql,在此不再贅述。接下來開始主備模式的配置

三、主備模式設定1.選擇其中一台伺服器作為master節點,修改Mysql配置檔案(1)修改配置檔案/etc/my.cnf

[mysqld]server-id=1log-bin=mysql-bin           

其中,`server-id` 是主伺服器的唯一 ID,`log-bin` 表示開啟二進制日志記錄重新開機mysql

sudo service mysqld restart           

(2)建立資料同步使用者

登入資料庫

mysql -u root -p           

建立資料同步使用者

其中,`repl` 是連接配接使用者名,`repl123`是資料庫密碼(3)重新開機mysql

sudo service mysqld restart           

(4)檢視master是否生效登入資料庫

mysql -u root -p           

記住File、Position,在從伺服器設定會用到。2.salve節點配置(1)修改配置檔案/etc/my.cnf,并且重新開機mysql

[mysqld]server-id=2log_bin=mysql-binrelay_log=relay-bin           

其中,`server-id` 是從伺服器的唯一 ID,需要和master不同。(2)設定從伺服器複制,切換到Slave伺服器後操作。登入資料庫mysql -u root -p

mysql>CHANGE MASTER TOMASTER_HOST='192.168.1.11',MASTER_USER='repl',MASTER_PASSWORD='repl123',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=154;           

其中,`mysql-bin.000002` 是在master執行指令SHOW MASTER STATUS 輸出結果中的File,MASTER_LOG_POS是Position,MASTER_HOST是主機的IP位址。(3)重新開機mysql

sudo service mysqld restart           

(4)檢視slave同步是否生效登入資料庫mysql -u root -p

如何在30分鐘内搭建雙節點的Mysql主備模式

其中,Slave_IO_Running: Yes和Slave_SQL_Running: Yes表示主從複制生效中。最後别忘了測試一下,登入Master節點的Mysql資料庫,建立測試資料庫

create database test;           

登入Slave 節點的Mysql ,

show databases;           

如果看到有test 資料庫,則說明已經成功,如果不放心,可以建立表和插入資料進一步進行測試。