MySQL의 단순 복제 문제 : ‘show master status’가 ‘Empty set’을 생성합니까? (데비안 6.0.1)를 설정했습니다. http://www.neocodesoftware.com/replication/ 나는 다음과 같이했습니다. mysql

다음 지침에 따라 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의 데이터베이스에 연결할 수 있습니다.



답변

흥미롭게도 바이너리 로그가 활성화되지 않은 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에 쓸 수없는 이유입니다.

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


답변

Mysql 버전이 5.0보다 크면 my.cnf의 복제 설정 master-host, master-user, master-password 및 기타 몇 가지가 무시됩니다. 초기 복제 설정을 위해 CHANGE MASTER TO를 사용하십시오.

http://dev.mysql.com/doc/refman/5.1/en/replication-howto-slaveinit.html 비교


답변

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

log-bin=log-bin

설명서를 확인하십시오.