主伺服器 | 192.168.176.110 |
從伺服器 | 192.168.176.120 |
主資料庫操作(ip:192.168.176.110)
配置MySQL主伺服器的配置檔案
[root@localhost ~]# vi /etc/my.cnf
在my.cnf內加上如下配置
server-id = 1 #保證唯一性
log-bin = mysql-bin #主從服務的核心 定義binblog日誌的字首名
#binlog-do-db=test #需要同步的資料庫,如果沒有本行,即表示同步所有的資料庫
#binlog-do-db=mydb #需要同步的資料庫,同時同步test、mydb庫 、
#binlog-ignore-db=mysql #被忽略的資料庫
重啟MySQL主伺服器
[root@localhost ~]# service mysqld restart
登入MySQL
[root@localhost ~]# mysql -uroot -p123456
檢視資料庫狀態
需要記住File列和Position列的資料,配置從伺服器需要使用
mysql> show master status;
主資料庫操作(ip:192.168.176.120)
配置MySQL從伺服器的配置檔案
[root@localhost ~]# vi /etc/my.cnf
在my.cnf內加上如下配置
server-id = 2 #保證唯一性
重啟MySQL主伺服器
[root@localhost ~]# service mysqld restart
登入MySQL
[root@localhost ~]# mysql -uroot -p123456
配置同步主伺服器:
master_host主伺服器地址
master_port 主伺服器埠
master_user主伺服器使用者名稱
master_password 主伺服器密碼
master_log_file 對應上圖的主伺服器File列資料
master_log_pos 對應上圖的主伺服器Position列資料
mysql> change master to master_host='192.168.176.110',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=157;
開啟服務,並檢視服務狀態
mysql> start slave; #開啟從服務 mysql> show slave status\G; #檢視從服務狀態
配置成功
配置出錯
注意:配置主從同步,出現Slave_IO_Running: No 情況處理方式(複製同一套環境出現的問題)
如果出現上圖的錯誤,說明兩臺虛擬機器的MySQL環境的UUID一致。 可以通過命令檢測他們的UUID。
[root@localhost ~]# cat /var/lib/mysql/auto.cnf
如果命令無效 則進入到MySQL,執行以下命令獲取安裝的路徑
mysql> show variables like 'datadir';
然後從伺服器生成一個新的UUID
mysql> select uuid();
複製後 通過命令去修改裡面的UUID(路徑為自己mysql安裝路徑)
[root@localhost ~]# vi /var/lib/mysql/auto.cnf
最後重啟下mysql服務
[root@localhost ~]# service mysqld restart
執行完後重新的去執行【配置同步主伺服器】的步驟,配置引數和主伺服器相同的即可
以上是配置主從同步,出現Slave_IO_Running: No 情況處理方式
主伺服器建立資料庫
主庫當機處理方式
1-確保所有的relay log全部更新完畢,在每個從庫上執行show processlist
2-更新完畢後,登入所有從庫檢視master.info檔案,對比選擇pos最大的作為新的主庫,
3-然後登入這個新的主庫,執行stop slave;進入主目錄,刪除master.Info和relay-log.info配置my.cnf檔案開啟log-bin檔案
4-建立用於同步的使用者並授權slave
5-登入另外一臺從庫,執行stop slave停止同步
6-執行start slave
7-修改新的master資料,測試slave是否同步更新
從庫當機
1-檢視從庫上mysql的錯誤日誌,裡面有記錄主從掛掉時的binlog資訊。
2-有了binlog和postion資訊後,只需要重新在從庫上進行change master to配置即可。配置後開啟slave狀態,沒有報錯
3-檢視slave狀態,發現slave已經正常了,開始進行延時資料恢復。