Mysql主從的基本設定
在主伺服器上建立mysql使用者建立使用者(使用root也可以,但是不建議) , 該使用者必須有 REPLICATION SLAVE 許可權
建立使用者:CREATE USER 'test1'@'172.20.10.%' IDENTIFIED WITH mysql_native_password by '123456';
賦權:GRANT REPLICATION SLAVE ON *.* TO 'test1'@'172.20.10.%';
重新整理許可權:flush privileges;
在從伺服器上測試使用主伺服器剛剛建立的賬號是否能夠正常連線 例如
/usr/local/mysql/bin/mysql -utest1 -p123456 -h172.20.10.13
停止主、從伺服器的mysql服務
例如 /etc/init.d/mysql stop
主伺服器必須開啟開二進位制日誌 例如 vi /etc/my.cnf (根據實際路徑)
主要是修改配置檔案 , 一般在 linux 下安裝的 mysql 配置檔案是 my.cnf, 在
windwos 下是 my.ini,
修改主伺服器配置檔案
server-id=1
log-bin= 二進位制檔案的位置 # 主伺服器需開啟二進位制日誌 可以是預設值也 可以建立新目錄並且賦予可寫許可權
例如log-bin=/usr/local/mysql/binlog/bin-log
預設日誌檔案在mysql安裝目錄下的var目錄下
binlog-do-db=mydata # 需要同步的資料庫 預設都同步
#binlog-ignore-db= # 需要忽略的資料庫 預設不忽略任何資料庫
啟動mysql服務 /etc/init.d/mysql start
如果使用了預設的二進位制日誌配置 需要將原始日誌檔案刪除後再啟動mysql服務,啟動後可以檢視二進位制日誌目錄下是否生成新檔案,如果已經生成日誌檔案說明配置是正確的
配置從伺服器
server-id = 2
#replicate-do-db=mydata 可選 默認同步所有的資料庫
啟動mysql服務 /etc/init.d/mysql start
進入mysql命令 行執行命令
change master to master_host=' 主 服務 器 地 址 ', master_user=' 用 戶名 ',
master_password=' 密碼 ',
master_port= 埠號 ,MASTER_CONNECT_RETRY=10;
例如 :
change master to master_host='192.168.8.113',master_user='test1',master_password='123456',master_port=3306,master_connect_retry=10;
再執行 start slave;
在從伺服器輸入命令
show slave status\G;
檢視狀態 :
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.16.6
Master_User: slave
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: binlog.000002
Read_Master_Log_Pos: 903
Relay_Log_File: relaylog.000004
.........
在主伺服器上建立資料庫資料表後檢視從伺服器 , 看是否配置成功
撤銷配置 :
進入命令列執行 stop slave; 再執行 reset slave; 即可 .
如果報uuid錯誤可以在/usr/local/mysql/var/auto.cnf把uuid隨便改一下(重啟即可)