測試環境:
2台騰訊雲服務器。CentOS 7.2 64位,1G,lnmp。
PHP:5.6;Mysql:5.5
兩台干凈的服務器
下面開始配置主服務器(master)
1.修改配置:
log-bin = mysql-bin 要打開,也就是把前面的#去掉。也有些配置默認就是打開的。
其實主服務器的不需要怎么動,server-id = 1也行。IP尾號也行。
2.重啟服務:因為我的環境是lnmp。所以我的重啟命令可以是:service mysql start 或者 service mysqld start 或者 lnmp restart 三個選其一。總有一個適合你。
3.進入mysql:
然后給從服務器配置一個可以登錄的賬號:
命令: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 三個選其一。總有一個適合你。
然后給從數據庫一點配置:
- mysql> change master to
- master_host=’192.168.203.68′, // 這是主數據庫IP
- master_user=’jack’, // 主數據庫時候配置的登錄名
- master_password=’123456’, //登錄密碼
- master_log_file=’mysql-bin.0000010′, # 從哪個bin-log開始同步 在主庫中show master status
- master_log_pos=106; // 同上
本來想寫干凈點 為了方便你們直接復制,后來想想也沒什么用,反正你們都是要改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;。