MySQL의 단순 복제 문제 : 'show master status'가 'Empty set'을 생성합니까?


10

다음 지침에 따라 MySQL 마스터 복제 (데비안 6.0.1)를 설정했습니다. http://www.neocodesoftware.com/replication/

나는 다음과 같이했습니다.

mysql > show master status;

그러나 이것은 불행히도 유용한 출력이 아닌 다음을 생성합니다.

Empty set (0.00 sec)

에 오류 로그 /var/log/mysql.err는 빈 파일이므로 단서가 없습니다.

어떤 아이디어?

이것은 내가 /etc/mysql/my.cnf한 서버에 넣은 것입니다 (다른 서버에 맞게 수정되었습니다).

server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-host = 10.0.0.3
master-user = <myusername>
master-password = <mypass>
master-connect-retry = 60
replicate-do-db = fruit
log-bin = /var/log/mysql-replication.log
binlog-do-db = fruit

그리고 사용자를 설정했으며 위의 username / password / ipaddress를 사용하여 서버 A의 MySQL에서 서버 B의 데이터베이스에 연결할 수 있습니다.


: 나는 또한에 간단한 지침에 따라 시도했습니다 howtoforge.com/mysql_database_replication 에 내가 얻을 때, 다시 (혼자 한 서버)와 show master status내가 볼 Empty set. 당황했다!

서비스를 다시 시작하고 확인하십시오. 다시 시작한 후 오류 로그가 생성되면 해당 로그도 붙여 넣습니다.

답변:


7

흥미롭게도 바이너리 로그가 활성화되지 않은 PC에서 mysql을 실행하고 있습니다. 나는 다음을 수행했다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.5.12 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show master status;
Empty set (0.00 sec)

mysql> show binary logs;
ERROR 1381 (HY000): You are not using binary logging

mysql>

표시된 바와 같이, MySQL은 SHOW MASTER STATUS에 대해 "Empty Set"을 표시하므로; 이진 로깅이 활성화되지 않았기 때문입니다. 내가 가진 구성을 감안할 때 분명합니다.

가장 먼저해야 할 일은 오류 로그에 특정 폴더가 있는지 확인하는 것입니다

[mysqld]
log-error=/var/log/mysql/mysql.err
log-bin = /var/log/mysql/mysql-replication.log

그런 다음 다음을 실행하십시오.

service mysql stop
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql
service mysql start

그런 다음 mysql 클라이언트에서 다음 SQL 명령을 실행하십시오.

SHOW MASTER STATUS;
SHOW BINARY LOGS;

이전과 동일한 출력을 얻으면 MySQL은 지정된 폴더에 이진 로그를 쓸 수 없습니다. 딜레마는 MySQL이 / var / log에 쓸 수없는 이유입니다.

이것은 완전한 대답은 아니지만 이것이 도움이되기를 바랍니다.


/ var / log를 재귀 적으로 소유하고 mysql 그룹으로 설정하면 리눅스 시스템이 상당히 나빠질 것입니다. 나는 사람들에게 이것을하지 말 것을 강력히 권합니다. 대신, mysql이 쓰려고하는 로그 파일에서이를 구체적으로 실행하십시오.
존 헌트

@JohnHunt? 네 말이 맞아 폴더를 변경하겠습니다.
RolandoMySQLDBA


0

에 대한 설정 log-bin이 잘못되었으므로 MySQL에서 이진 로그를 쓸 수 없습니다. 파일 이름이 아니며, 부분 파일 이름 패턴으로, MySQL이 디렉토리를 앞에 추가하고 시퀀스 번호와 확장자를 추가합니다. 일반적인 설정은

log-bin=log-bin

설명서를 확인하십시오.


--log-bin=file_name( dev.mysql.com/doc/refman/5.7/en/… ). 파일 이름이 아니라고 어떤 설명서에 나와 있습니까?
Stephan Vierkant
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.