標籤:slave create max star inf running general sql_mode 二進位
MySQL主從配置主伺服器設定
1.首先建立一個從伺服器可以串連的使用者,並授予許可權(一般只需要讀的許可權就夠了)
# mysql -u root -p# 允許本地 IP 訪問 localhost, 127.0.0.1# insert into mysql.user(Host,User,Password) values(‘localhost‘,‘zhouz‘,password(‘1234‘));# 允許外網 IP 訪問# insert into mysql.user(Host,User,Password) values(‘%‘,‘zhouz‘,password(‘1234‘));# 重新整理授權# flush privileges;# 建立資料庫# create database cmdb_v2 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;# 授予使用者通過外網IP對於該資料庫的全部許可權# grant all privileges on `zhouzdb`.* to ‘zhouz‘@‘%‘ identified by ‘1234‘;# 授予使用者在本機伺服器對該資料庫的全部許可權# grant all privileges on `cmdb_v2`.* to ‘zhouz‘@‘%‘ identified by ‘1234‘;# 重新整理許可權# flush privileges;
2.找到主要資料庫的設定檔my.cnf(或者my.ini),我的在/data/mysql56/my.cnf,添加如下兩行
log_bin = mysql_bin #開啟二進位日誌server_id = 1 #設定server-id
如果沒有找到設定檔
查看mysql預設讀取my.cnf的目錄
如果沒有設定使用指定目錄的my.cnf,mysql啟動時會讀取安裝目錄根目錄及預設目錄下的my.cnf檔案。
/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 這些就是mysql預設會搜尋my.cnf的目錄,順序排前的優先。 如果這些目錄下面都沒有,就自己建立一個,或者從別的地方複製一個
命令mysql --help|grep ‘my.cnf‘輸出 order of preference, my.cnf, $MYSQL_TCP_PORT,/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
這是我的my.cnf全部內容
# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]log_bin = mysql_bin #開啟二進位日誌server_id = 1 #設定server-idmax_allowed_packet = 20Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3.重啟mysql,然後查看主伺服器二進位檔案名與位置
File就是二進位檔案名
position就是位置
到此為止,我們需要配置主從,主這邊所需要的所有東西都拿到了
這個時候
分別的伺服器ip,mysql的帳號和密碼,主伺服器的二進位檔案名和位置
從伺服器設定
1.同樣找到從伺服器的設定檔,只需要添加server_id 一行就行了
server_id = 2 #設定server-id,這裡的id不能和主的一樣
2.重啟伺服器,進入mysql,執行下面的語句,等號後面後換成我們從伺服器拿到的資料
CHANGE MASTER TOMASTER_HOST=‘113.111.111.111‘,MASTER_USER=‘root‘,MASTER_PASSWORD=‘root‘,MASTER_LOG_FILE=‘mysql_bin.000001‘,MASTER_LOG_POS=442414;
3.如果沒有錯誤,我們的主從就搭建完成了
4.我們執行start slave;開啟主從
start slave;
5.執行 SHOW SLAVE STATUS\G可以查看主從是否運行正常
,兩個必須都為yes才算正常,這時可以隨便更改下主mysql的資料,不錯意外,從伺服器應該會自動同步過來了
SHOW SLAVE STATUS\G
注意事項
1.當配置完成Slave_IO_Running、Slave_SQL_Running不全為YES時,show slave status\G資訊中有錯誤提示,可根據錯誤提示進行更正。
2.Slave_IO_Running、Slave_SQL_Running不全為YES時,大多數問題都是資料不統一導致。
3.兩台資料庫都存在db資料庫,而第一台MySQL db中有tab1,第二台MySQL db中沒有tab1,那肯定不能成功。
4.已經擷取了資料的二進位日誌名和位置,又進行了資料操作,導致POS發生變更。在配置CHANGE MASTER時還是用到之前的POS。
5.stop slave後,資料變更,再start slave。出錯。更正方法重新執行一遍CHANGE MASTER就好了。
mysql主從配置