Mysql linux數據庫主從複製服務器搭建

**

Mysql主從複製服務器搭建步驟

Mysql服務器主主複製容易出現的問題就是:
①數據混亂;
②主鍵可能重複;

從而爲了提高MySQL服務器穩定性 ,就出現了MySQL服務器主從複製。MySQL服務器主從複製(下問就以主從代替)讓mysql服務器穩定性提升,避免單臺mysql服務器宕機後影響整個業務,當出現宕機問題後,可以立即使從機提升爲新的主服務器。從而實現sql高可用冗餘性。

不廢話了,接下來我們來配置一下!

一、操作系統:Centos7

首先需要搭建2臺mysql服務器

搭建步驟可以參考我之前的文章
虛擬機CentOS搭建PHP開發環境以及安裝Memcached

1. 查看主從服務器IP:

IP查看命令

ipconfig/all

主服務器:
在這裏插入圖片描述
從服務器:

在這裏插入圖片描述

2. 主從分別安裝mariadb

yum install mariadb mariadb-test mariadb-server
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf #拷貝配置文件
 提示是否覆蓋,輸入y繼續

3.修改主服務器

vi /etc/my.cnf

在這裏插入圖片描述
在這裏插入圖片描述
① server-id=120 (服務id,每個id不能重複,都是唯一的,用ip的最後三位即可,這是一個技巧)
② log-bin=master-bin (二進制日誌,文件格式爲master-bin.0000001)
③ log-bin-index=master-bin.index (這一句可能沒有,自己添加)

4. 啓動主服務器:

 systemctl restart mariadb.service
mysql>show master status;

5. 登錄主服務器,並增加用以同步的賬戶:這裏的repl是自己定義的用戶名

a)    mysql>create user repl;
b)    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從ip' IDENTIFIED BY ' repl的用戶密碼';
c)    flush privileges;//刷新MySQL的系統權限相關表
d)    說明:爲從服務器創建一個用戶repl,有連接主服務器並複製數據的權限.
e)    如果從ip寫%,表示允許所有的IP訪問.可以自己設置只允許哪些IP訪問.(例如192.168.%.%)
f)    生產環境中不建議使用root用戶,必須重新創建新用戶進行登陸
g)    賬號驗證(查看賬號是否添加到數據庫中):
i)    show databases;
ii)   use mysql;
iii)  show tables like ‘%user%;
iv)   select User,Password,Host from user;

在這裏插入圖片描述

6. 重啓主服務器

a)    systemctl restart mariadb.service #重啓mariadb

7. 關閉CentOS7主/從防火牆:

a)  如果不關閉會導致主從複製失敗
b)   systemctl stop firewalld

8.修改從服務器:

a)   server-id=130
b)   log-bin=relay-bin
c)   log-bin-index=relay-bin.index
d)   relay-log=slave-relay 

9.在從服務器界面輸入代碼切換至主服務器:

a)   mysql>change master to master_host='主ip', 
b)   master_port=3306,
c)   master_user='repl',
d)   master_password=' repl的用戶密碼', 
e)   master_log_file='master-bin.000003',
f)   master_log_pos=715;

上圖中的master_log_file和master_log_pos的值不能隨便寫.在主服務器中查看相關信息:
在這裏插入圖片描述

10.開啓從服務器:

a)  mysql>start slave;

11.常見錯誤1:

在這裏插入圖片描述
解決方案:

mysql>stop slave; 
mysql>reset slave;
重新執行 change master ****代碼

12. 測試是否成功

①打開主服務器的mysql和從服務器的mysql,默認有三個數據庫

在這裏插入圖片描述

②創建一個數據庫,現在有四個數據庫

在這裏插入圖片描述

③打開從服務器的數據庫,變成四個數據庫說明主從複製成功

在這裏插入圖片描述

④在從服務器的mysql中執行 show slave status \G;命令查看從數據庫的複製功能狀態.

Master_Host 表示主數據庫地址
Master_User 使用哪個用戶登錄
Master_Port 連接端口
Read_Master_Log_Pos: 245 同步讀取二進制日誌的位置,必須大於或等於下面的Exec_Master_Log_Pos數據
Slave_IO_Running: Yes 必須爲Yes,否則需要查找原因
Slave_SQL_Running: Yes 必須爲Yes,否則需要查找原因
Exec_Master_Log_Pos: 245

⑤e)你也可以在主服務器的數據庫中插入幾條數據,在從服務器的數據庫中查詢,看看有沒有數據.

13.附件

在這裏插入圖片描述
在這裏插入圖片描述
今天是520,祝大家節日快樂♥在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章