Heim > Datenbank > MySQL-Tutorial > Hauptteil

Beispielcode für MySQL-Master-Slave-Server-ID wird nicht wirksam (Bild)

黄舟
Freigeben: 2017-03-11 14:04:51
Original
3075 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

Führen Sie den Befehl „START Slave“ auf dem Slave-Server aus.

mysql> START slave;
Nach dem Login kopieren

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)
Nach dem Login kopieren

-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)
Nach dem Login kopieren

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage