[轉]mySql主從配置出錯:The server is not configured as slave; fix in config file or with CHANGE MASTER TO

數據庫已搭建完成,各種配置均已完成,但是在start slave ;的時候,報錯:

ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO

 

這裏說,我沒有配置爲從機,但我明明配置過的啊。

MySQL版本:5.6.19

主:master IP  :  172.17.210.199
從:slave    IP :172.17.206.138 
先看看從機172.17.206.138的my.cnf

 

[plain] view plain copy
 
  1. [root@liuyazhuang ~]# vi /etc/my.cnf  
  2. [mysqld]  
  3. datadir=/usr/local/mysql/data  
  4. socket=/tmp/mysql.sock  
  5. skip-grant-tables  
  6. user=mysql  
  7. # Disabling symbolic-links is recommended to prevent assorted security risks  
  8. symbolic-links=0  
  9. tmpdir=/tmp  
  10. [mysqld_safe]  
  11. log-error=/usr/local/data/mysqld.log  
  12. pid-file=/usr/local/mysql/data/mysqld.pid  
  13. ###############以下是添加主從的配置  
  14. server_id = 2  
  15. log-bin = /usr/local/mysql/log/solve-bin.log  
  16. master-host = 172.17.210.199  
  17. master-user = test  
  18. master-pass = 123456  
  19. master-port = 3306  
  20. master-connect-retry = 60  

這是MySQL主機172.17.210.199的my.cnf

 

[plain] view plain copy
 
  1. [root@liuyazhuang ~]$ cat /etc/my.cnf  
  2. [mysqld]  
  3. log-bin = /u01/mysql/log/masters-bin.log  
  4. read-only = 0  
  5. basedir = /u01/mysql  
  6. datadir = /u01/mysql/data  
  7. port = 3306  
  8. server_id = 1  
  9. socket = /tmp/mysql.sock  
  10. join_buffer_size = 128M  
  11. sort_buffer_size = 2M  
  12. read_rnd_buffer_size = 2M  
  13.   
  14. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  
嘗試過多次 重啓主從還是報錯;
接着手動chang to 後還是一樣報錯

 

[sql] view plain copy
 
  1. mysql> CHANGE MASTER TO  
  2. MASTER_HOST='172.17.210.199',  
  3. MASTER_USER='test',  
  4. MASTER_PASSWORD='123456',  
  5. MASTER_LOG_FILE='masters-bin.000003',  
  6. MASTER_LOG_POS=120;  
  7. Query OK, 0 rows affected, 2 warnings (0.04 sec)   
在從庫服務器執行START slave;命令啓動slave

 

 

[sql] view plain copy
 
  1. mysql> START slave;  

報錯:
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO

 

 

於是查看日誌
1.查看SLAVE172.17.206.138上的Mysql報錯日誌,有這麼一句:
141009  6:06:29 [ERROR] Server id not set, will not start slave

意思是,slave的server-id沒有設置。
那就奇怪了,我明明在配置文件裏面指定了server-id的了,並且有重啓mysql服務,難道不起效?
分別在主從上執行命令“show variables like 'server_id';”。

-------從機上面查看端口

 

[sql] view plain copy
 
  1. mysql> mysql> SHOW VARIABLES LIKE 'server_id';  
  2. +---------------+-------+  
  3. | Variable_name | Value |  
  4. +---------------+-------+  
  5. | server_id     | 0     |  
  6. +---------------+-------+  
  7. 1 row in set (0.00 sec)  

命名設置的是2,怎麼會變成0

 

 

-------主機上面查看 

 

[sql] view plain copy
 
  1. mysql> SHOW VARIABLES LIKE 'server_id';  
  2. +---------------+-------+  
  3. | Variable_name | Value |  
  4. +---------------+-------+  
  5. | server_id     | 1     |  
  6. +---------------+-------+  
  7. 1 row in set (0.00 sec)  

跟設置的一樣。
既然參數文件不生效,就試試在數據庫命令裏面設置:在從機 172.17.206.138上執行命令

 

 

[sql] view plain copy
 
  1. mysql > SET GLOBAL server_id=2;  

再次在從機 172.17.206.138上執行slave start和show slave status,成功了。
         注意!!!由於“SET GLOBAL server_id=;”命令會在mysql服務重啓後丟失,所以一定要寫到配置文件裏面。
但爲什麼我之前修改了my.cnf文件不起效?
仔細排查,發現配置裏面有[mysqld]和[mysqld_safe],之前將修改的配置內容基本都放在了[mysqld_safe]下面,新增的配置文件放的位置不一樣也有關係?於是我嘗試把配置文件裏修改的部分放在[mysqld]下面,於是改成這樣:

 

[plain] view plain copy
 
  1. [root@liuyazhuang]# cat  /etc/my.cnf  
  2. [mysqld]  
  3. datadir=/usr/local/mysql/data  
  4. socket=/tmp/mysql.sock  
  5. skip-grant-tables  
  6. user=mysql  
  7. symbolic-links=0  
  8. tmpdir=/tmp  
  9. server_id = 2  
  10. log-bin = /usr/local/mysql/log/solve-bin.log  
  11. master-host = 172.17.210.199  
  12. master-user = test  
  13. master-pass = 123456  
  14. master-port = 3306  
  15. master-connect-retry = 60  
  16.   
  17. [mysqld_safe]  
  18. log-error=/usr/local/data/mysqld.log  
  19. pid-file=/usr/local/mysql/data/mysqld.pid   
如圖,就是將圖中標註的內容從[mysqld_safe]下修改到[mysqld]下

 

修改之後,再次同步,成功了!

[sql] view plain copy
 
  1. mysql>  
  2. mysql> STOP slave;  
  3. Query OK, 0 rows affected (0.05 sec)  
  4.   
  5. mysql> START slave;  
  6. Query OK, 0 rows affected (0.00 sec)   
  7.  


---------------------
原文:https://blog.csdn.net/zwc2xm/article/details/72887239
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章