데이터베이스가 설정되고 모든 구성이 완료되었지만 슬레이브;를 시작할 때 오류가 보고됩니다.
ERROR 1200(HY000): 서버가 구성되지 않았습니다. as 슬레이브 ; 구성 파일에서 수정하거나 CHANGE MASTER TO
여기서는 슬레이브로 구성하지 않았지만 명확하게 구성했다고 나와 있습니다.
MySQL 버전: 5.6.19
마스터: 마스터 IP: 172.17.210.199
슬레이브 IP: 172.17.206.138
슬레이브 172.17을 먼저 살펴보세요. of 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
이것은 MySQL 호스트 172.17.210.199의 my.cnf입니다.
[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
마스터와 슬레이브를 여러 번 다시 시작하려고 시도했지만 여전히 오류가 발생했습니다.
그런 다음 이후 수동으로 변경하면 동일한 오류가 보고됩니다.
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)
슬레이브 서버에서 START 슬레이브를 실행하고 슬레이브를 시작하는 명령
mysql> START slave;
오류가 보고됩니다:
ERROR 1200(HY000): 서버가 슬레이브로 구성되지 않았습니다. 구성 파일에서 수정하거나 CHANGE MASTER TO
로그를 확인하세요
1. 138, 다음 문장이 있습니다:
141009 6:06:29 [ERROR] 서버 ID가 설정되지 않았습니다. 슬레이브를 시작하지 않습니다
슬레이브의 서버 ID가 설정되지 않았습니다.
이상하네요. 구성 파일에 server-id를 명확하게 지정하고 mysql 서비스를 다시 시작했는데 작동하지 않나요?
마스터와 슬레이브에서 각각 'server_id'와 같은 변수 표시' 명령을 실행합니다.
---------슬레이브 머신에서 포트
mysql> mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 0 | +---------------+-------+ 1 row in set (0.00 sec)
를 봅니다. 네이밍 설정이 2인데 왜 0이 되나요
-------호스트 머신에서 보기
mysql> SHOW VARIABLES LIKE 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 1 | +---------------+-------+ 1 row in set (0.00 sec)
설정과 동일합니다.
매개변수 파일이 적용되지 않으므로 데이터베이스 명령에서 설정해 보십시오. 슬레이브 머신 172.17.206.138에서
mysql > SET GLOBAL server_id=2;
명령을 실행하고 슬레이브 머신 172.17에서 슬레이브 시작 및 슬레이브 상태 표시를 실행합니다. .206.138이 다시 작동했습니다.
주목! ! ! mysql 서비스를 다시 시작하면 "SET GLOBAL server_id=;" 명령이 손실되므로 구성 파일에 기록해야 합니다.
그런데 이전에 수정한 my.cnf 파일은 왜 작동하지 않았나요?
주의 깊게 조사한 결과 구성에 [mysqld]와 [mysqld_safe]가 있음을 발견했습니다. 수정된 구성 내용은 기본적으로 [mysqld_safe]에 배치되어 있습니다. 새로 추가된 구성 파일이 다른 위치에 있어도 상관없나요? 그래서 수정된 부분을 [mysqld] 하위의 설정파일에 넣으려고 해서 이렇게 변경했습니다:
[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
그림과 같이 그림에 표시된 내용을 [에서 변경했습니다. mysqld_safe]를 [ mysqld]로
수정 후 다시 동기화하면 성공!
위 내용은 MySQL-master-slave server-id는 샘플 코드를 적용하지 않습니다(그림).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!