測試環境:mysql
2臺騰訊雲服務器。CentOS 7.2 64位,1G,lnmp。sql
PHP:5.6;Mysql:5.5數據庫
兩臺乾淨的服務器安全
下面開始配置主服務器(master)服務器
1.修改配置: ide
log-bin = mysql-bin 要打開,也就是把前面的#去掉。也有些配置默認就是打開的。測試
其實主服務器的不須要怎麼動,server-id = 1也行。IP尾號也行。rest
2.重啓服務:由於個人環境是lnmp。因此個人重啓命令能夠是:service mysql start 或者 service mysqld start 或者 lnmp restart 三個選其一。總有一個適合你。code
3.進入mysql:server
而後給從服務器配置一個能夠登陸的帳號:
命令:grant all on *.* to ‘帳號名’@’從服務器IP’ identified by ‘密碼’ 。例如:grant all on *.* to 'root'@'192.168.203.20' identified by 'repl';
接着這個命令:show master status;
獲得:
記住這兩個值。等會有用。
而後能夠查看一下當前的用戶。命令:SELECT
user
,host,
password
FROM
mysql.
user;
看吧,是否是多了一個。
/***************************************/
如今開始配置從數據庫
編輯從庫的my.cnf文件
‘
只要這個值和主庫的不同,就沒有什麼問題。
接下來。仍是重啓服務。service mysql start 或者 service mysqld start 或者 lnmp restart 三個選其一。總有一個適合你。
而後給從數據庫一點配置:
原本想寫乾淨點 爲了方便大家直接複製,後來想一想也沒什麼用,反正大家都是要改IP和帳號密碼的。
接着。執行這個命令start slave;
最後:show slave status \G 這行命令
千萬不要在後面跟;分號。
會影響結果的。
紅框兩個爲yes 時候。表示成功~
/*******************************/
報錯時候!!!!
1.若是MYSQL服務重啓一直報錯。那就是你的配置文件有問題。就是那個/etc/my.cnf的文件。
2.若是從服務器不能鏈接到主服務。首先判斷。防火牆關了沒。端口開了沒。安全組定義了沒。
若是防火牆:就百度防火牆開關的命令。
若是是端口:就是服務商那裏把端口全開了。服務商知道把,就是若是你的服務器是阿里。就去阿里的控制檯,若是的騰訊雲。就去騰訊雲的控制檯。
若是是安全組:那就去服務商那裏找一個‘安全組’-》'入站規則'。
3.你也能夠測試一下是否可用鏈接主數據庫:直接敲命令:mysql -h主服務器IP -u用戶名 -p密碼。若是能連同。證實防火牆和端口和安全組都沒問題。
4. 最後有個坑爹的。在執行最後一個show slave status \G命令的時候。若是加了分號。就會有個報錯。有時候還會影響到這兩個的值
5.差很少就是這樣了。若是還有其餘問題。歡迎補充探討
2017年10月22日23:20:07補充:
6.剛剛從新配的時候發現了一個錯誤。以爲很重要:
在slave_IO_Running:connecting 的時候。能夠先退出來。鏈接一下遠程的數據庫。看能不能連。mysql -h主服務器ip -u剛剛主服務器設置的帳號 -p密碼
若是能連。通常來講都是沒問題的。
若是不能。那就在主服務器,關掉防火牆
(systemctl stop firewalld.service #中止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running))而後重啓一下服務器。再去從服務器中。遠程鏈接主服務器的數據庫。一直到能鏈接上爲止。
還有個注意點:主服務器操做完最後一步。就不要操做了。否則會影響到Pos值。從服務器能夠清空一下bin-log文件:mysql > reset master;。