> 데이터 베이스 > MySQL 튜토리얼 > MySQL-master-slave server-id는 샘플 코드를 적용하지 않습니다(그림).

MySQL-master-slave server-id는 샘플 코드를 적용하지 않습니다(그림).

黄舟
풀어 주다: 2017-03-11 14:04:51
원래의
3111명이 탐색했습니다.

데이터베이스가 설정되고 모든 구성이 완료되었지만 슬레이브;를 시작할 때 오류가 보고됩니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿