第一次搭建MySQL的主從配置,別人都說很簡單,真動起手來.... 坑還是很多, 你懂的.
首先,深度參考了這2篇優秀博文:
如果你按照上面2篇文章中操作就Ok, 那就不需要往下看了.
===============下面是我的總結: ===========
一句話: 更改DB的配置項,重啓DB. 然後在slave上執行個同步的命令.
大致步驟:
1. 先配置主庫
主庫可以有多個.依次配置即可,配置後需重啓MySQL服務;
配置主庫/etc/my.cnf文件,配置log-bin日誌開啓;
2. 再配置從庫
3. 開啓同步;
4. 觀察結果;
踩坑記錄:
1. 所謂多源主從,就是個名稱. 配置源/主(master)和從(slave), 配置多個master,就是多源,一個master,就是單源;
2. 先確保你的賬戶有足夠權限. system account 不是root的話,起碼要有sudo權限; mysql account則必須有root權限;
是的,你沒看錯, 假設我的場景是 2 master -> 1 slave. 那麼3臺服務器,3個mysql, 你得有6個賬號; 不要被整暈哦,確實容易亂;
3. 確保server間網絡互通.
可以用telnet ip 3306命令,最好用 'mysql -h {ip} -u username -p 密碼' 命令,試試能不能remote login.
on slave, to login master.
4. 如果是新庫,不需要DB導入導出;
如果是有數據的庫(絕大多數情況下),需要先將主庫(master)中需要做主從的DB備份(mysqldump)爲文件,然後在從庫(slave)導入;
5. 由於更改mysql配置需要重啓mysql服務.所以重啓完成後再導出DB,每次重啓會導致bin-log文件位置變動;
6. 確保你master / slave的mysql版本一致.
mysql5.7和mysql8在某些命令在細節上有些不同, 需確認;
7. 在配置mysql bin-log開啓的時候, 需配置 server_id, 這個配置只能配置爲數字. 如: server_id = 17
8. 如果操作完,發現數據沒同步, 問題非常難找.因爲mysql的日誌只會說概況.
總結,
對於非DBA用戶來說,操作要小心.主要是不成功的情況下,如何做好處理預案.
配置本身不難,問題是通常情況下,服務器環境是運維建的. mysql是DBA熟悉的,精通的,這......就有意思了.
最後,祝你好運!