【mysql】mysql的資料庫主從(一主一從)

王雲召發表於2020-07-11

在搭建mysql的資料庫主從之前,我們在兩臺不同的伺服器上搭建mysql資料庫,安裝的步驟在下面的部落格中:

linux安裝mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509

然後我們正式開始做資料庫主從:

一、主機配置(主機ip:192.168.157.130)

1.開啟配置檔案

vim /etc/my.cnf

2.在配置檔案中寫入我們的配置

#主伺服器唯一ID
server-id=1
#啟用二進位制日誌
log-bin=mysql-bin
# 設定不要複製的資料庫(可設定多個)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#設定需要複製的資料庫,可以不寫,這樣就除了不要複製的,剩下的都複製
binlog-do-db=資料庫名稱
#設定logbin格式
binlog_format=STATEMENT

 

二、從機配置(從機ip:192.168.157.129)

1.開啟配置檔案

vim /etc/my.cnf

2.在配置檔案中寫入我們的配置

修改配置檔案: vim /etc/my.cnf
#從伺服器唯一ID
server-id=2
#啟用中繼日誌
relay-log=mysql-relay

三、主機,從機都重啟mysql服務

#重啟mysql伺服器
systemctl restart mysqld
#檢視mysql的狀態
systemctl status mysqld

 重啟mysql伺服器,檢視mysql的狀態,如下如是啟動成功的狀態,代表重啟成功;

四、主機從機都關閉防火牆或者將3306埠開啟 

1.關閉防火牆

#關閉防火牆
service firewalld stop/systemctl stop firewalld  
#開啟防火牆
service firewalld start/systemctl start firewalld
#檢視防火牆的狀態
systemctl status firewalld

關閉防火牆之後我們需要檢視防火牆的狀態,下圖分別使我們開啟防火牆之後和關閉防火牆之後分檢視防火牆的狀態:

2.在防火牆開埠 (如果選擇了關閉防火牆就不用做這步了

#開3306埠
firewall-cmd --permanent --zone=public --add-port=3306/tcp

新增成功如下圖所示,這時候還需要重新載入防火牆才能生效 

#防火牆重新載入
firewall-cmd --reload

重新載入防火牆成功 

然後驗證是否新增成功

#檢視是否新增成功
firewall-cmd --zone=public --query-port=3306/tcp

驗證成功,已經新增完畢 

 

五、在主機上建立賬戶並授權給從機(給從機分配連結的賬號,用來備份)

1.在liunx系統中登入mysql的主機

#u後是root賬戶,-p後密碼是123456
mysql -uroot -p123456

2.給從機分配一個賬號用來做主從複製 

#在主機MySQL裡執行授權命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';

 3.檢視master的狀態

#查詢master的狀態
show master status;

輸入命令後我們可以看到一下幾個資訊 :

記錄下File和Position的值
執行完此步驟後不要再操作主伺服器MySQL,防止主伺服器狀態值變化

六、在從機配置需要複製的主機

1.在liunx系統中登入mysql的從機

#u後是root賬戶,-p後密碼是123456
mysql -uroot -p123456

2.配置複製的主機

2.1停止主從複製(不論有沒有開啟)

#停止從伺服器複製功能
stop slave;

2.2重新配置主從

reset master;

2.3配置複製主機 的資訊(漢字需要改成上圖master中的值)

#複製主機的命令
CHANGE MASTER TO MASTER_HOST='主機的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.日誌具體數字',MASTER_LOG_POS=位點具體值;

示例,這是根據我的資訊寫的命令:

CHANGE MASTER TO MASTER_HOST='192.168.157.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;

 2.4啟動複製

start slave;

2. 5檢視主從複製的狀態

#檢視從伺服器狀態
show slave status\G;

看到下面兩個引數都是Yes,則說明主從配置成功!

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

則證明主從複製成功了。 

 

 

 

 

相關文章