Die Datenbank wurde eingerichtet und alle Konfigurationen wurden abgeschlossen, aber beim Starten von Slave ; wird ein Fehler gemeldet:
FEHLER 1200 (HY000): Der Server ist nicht konfiguriert als Slave; Fix in der Konfigurationsdatei oder mit CHANGE MASTER TO
Hier steht, dass ich es nicht als Slave konfiguriert habe, aber ich habe es eindeutig konfiguriert.
MySQL-Version: 5.6.19
Master: Master-IP: 172.17.210.199
Slave-IP: 172.17.206.138
Sehen Sie sich zuerst Slave 172.17 My.cnf an von 206.138
[root@liuyazhuang ~]# vi /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock skip-grant-tables user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 tmpdir=/tmp [mysqld_safe] log-error=/usr/local/data/mysqld.log pid-file=/usr/local/mysql/data/mysqld.pid ###############以下是添加主从的配置 server_id = 2 log-bin = /usr/local/mysql/log/solve-bin.log master-host = 172.17.210.199 master-user = test master-pass = 123456 master-port = 3306 master-connect-retry = 60
Dies ist meine.cnf des MySQL-Hosts 172.17.210.199
[root@liuyazhuang ~]$ cat /etc/my.cnf [mysqld] log-bin = /u01/mysql/log/masters-bin.log read-only = 0 basedir = /u01/mysql datadir = /u01/mysql/data port = 3306 server_id = 1 socket = /tmp/mysql.sock join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Ich habe viele Male versucht, den Master und den Slave neu zu starten und habe immer noch eine Fehlermeldung erhalten;
Nach dem manuellen Wechsel wird immer noch derselbe Fehler gemeldet
mysql> CHANGE MASTER TO MASTER_HOST='172.17.210.199', MASTER_USER='test', MASTER_PASSWORD='123456', MASTER_LOG_FILE='masters-bin.000003', MASTER_LOG_POS=120; Query OK, 0 rows affected, 2 warnings (0.04 sec)
Führen Sie den Befehl „START Slave“ auf dem Slave-Server aus.
mysql> START slave;
Fehler:
FEHLER 1200 (HY000): Der Server ist nicht als Slave konfiguriert; Behebung in der Konfigurationsdatei oder mit CHANGE MASTER TO
Überprüfen Sie daher das Protokoll
1 Fehlerprotokoll auf SLAVE172.17.206.138, Es gibt einen solchen Satz:
141009 6:06:29 [FEHLER] Server-ID nicht festgelegt, Slave wird nicht gestartet
bedeutet, dass die Server-ID des Slaves nicht festgelegt ist.
Das ist seltsam. Ich habe die Server-ID eindeutig in der Konfigurationsdatei angegeben und den MySQL-Dienst neu gestartet.
Führen Sie den Befehl „Variablen wie ‚server_id‘ anzeigen“ auf dem Master bzw. dem Slave aus.
-------Überprüfen Sie den Port auf dem Slave-Computer. Die
mysql> mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 0 | +---------------+-------+ 1 row in set (0.00 sec)
-Namenseinstellung ist 2, warum wird sie zu 0?
-------Ansicht auf dem Host-Computer
mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ 1 row in set (0.00 sec)
entspricht den Einstellungen.
Da die Parameterdatei nicht wirksam wird, versuchen Sie, sie im Datenbankbefehl festzulegen: Führen Sie den Befehl auf der Slave-Maschine 172.17.206.138 aus.
mysql > SET GLOBAL server_id=2;
Führen Sie den Slave-Start aus und zeigen Sie den Slave auf der Slave-Maschine 172.17 an .206.138 wieder Status, erfolgreich.
Achtung! ! ! Da der Befehl „SET GLOBAL server_id=;“ nach dem Neustart des MySQL-Dienstes verloren geht, muss er in die Konfigurationsdatei geschrieben werden.
Aber warum hat die my.cnf-Datei, die ich zuvor geändert habe, nicht funktioniert?
Nach sorgfältiger Prüfung habe ich festgestellt, dass die Konfiguration [mysqld] und [mysqld_safe] enthält. Der geänderte Konfigurationsinhalt wurde grundsätzlich unter [mysqld_safe] abgelegt. Also habe ich versucht, den geänderten Teil in die Konfigurationsdatei unter [mysqld] einzufügen, also habe ich ihn wie folgt geändert:
[root@liuyazhuang]# cat /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock skip-grant-tables user=mysql symbolic-links=0 tmpdir=/tmp server_id = 2 log-bin = /usr/local/mysql/log/solve-bin.log master-host = 172.17.210.199 master-user = test master-pass = 123456 master-port = 3306 master-connect-retry = 60 [mysqld_safe] log-error=/usr/local/data/mysqld.log pid-file=/usr/local/mysql/data/mysqld.pid
Wie im Bild gezeigt, wird der im Bild markierte Inhalt geändert von [mysqld_safe] Nachdem Sie
unter [mysqld] geändert haben, synchronisieren Sie erneut und es ist erfolgreich!
mysql> mysql> STOP slave; Query OK, 0 rows affected (0.05 sec) mysql> START slave; Query OK, 0 rows affected (0.00 sec)
Das obige ist der detaillierte Inhalt vonBeispielcode für MySQL-Master-Slave-Server-ID wird nicht wirksam (Bild). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!