前段時間有人問我Mysql的主備模式如何搭建,我就花30分鐘現場示範了一下,本文提供mysql安裝部署master+salve模式的全流程,主要示範2個節點的操作過程,多節點的操作方式一樣。理論方面的知識就不講了,直接上操作,希望對大家有所幫助。
一、安裝準備
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
其中,Slave_IO_Running: Yes和Slave_SQL_Running: Yes表示主從複制生效中。最後别忘了測試一下,登入Master節點的Mysql資料庫,建立測試資料庫
create database test;
登入Slave 節點的Mysql ,
show databases;
如果看到有test 資料庫,則說明已經成功,如果不放心,可以建立表和插入資料進一步進行測試。