Soru MySQL basit çoğaltma problemi: 'ana durumu göster', 'Boş set' üretiyor mu?


Bu yönergeleri sadakatle takip ederek MySQL ana çoğaltmasını (Debian 6.0.1'de) kurdum: http://www.neocodesoftware.com/replication/

Şimdiye kadar var:

mysql > show master status;

ama bu maalesef herhangi bir faydalı çıktıdan ziyade aşağıdakileri üretiyor:

Empty set (0.00 sec)

Adresindeki hata günlüğü /var/log/mysql.err sadece boş bir dosya, bu yüzden bana herhangi bir ipucu vermiyor.

Herhangi bir fikir?

Bu benim koyduğum şey /etc/mysql/my.cnf bir sunucuda (diğer sunucu için uygun şekilde değiştirilmiştir):

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

Ve ben kullanıcılar kurmak ve yukarıdaki A kullanıcı adı / parola / ipaddress kullanarak Sunucu A MySQL Server B veritabanına bağlayabilirsiniz.


8
2018-05-04 20:09


Menşei


Ayrıca aşağıdaki basit talimatları uygulamayı denedim: howtoforge.com/mysql_database_replication (tek bir sunucuda) ve tekrar, gittiğimde show master status anlıyorum Empty set. Şaşkın!
Servisi yeniden başlatıp kontrol edin. Yeniden başlatıldıktan sonra herhangi bir hata günlüğü oluşturulmuşsa, bunu da yapıştırın.


Cevaplar:


İlginç bir şekilde, mysql, ikili günlükler etkin değilken PC'imde çalışıyor. Ben yaptım:

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>

Gösterildiği gibi, MySQL SHOW MASTER STATUS için "Boş Set" gösterdiği için; çünkü ikili kayıt etkinleştirilmedi. Sahip olduğum yapılandırma göz önüne alındığında bu açık.

Yapmanız gereken ilk şey, hata günlüğünün belirli bir klasöre sahip olduğundan emin olmaktır.

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

Sonra aşağıdakileri çalıştırın:

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

Sonra mysql istemcide bu SQL komutlarını çalıştırın

SHOW MASTER STATUS;
SHOW BINARY LOGS;

Daha önce sahip olduğum çıktıyı alırsanız, MySQL belirlenen klasöre ikili günlükleri yazamaz. İkileminiz, MySQL'in neden / var / log'a yazamayacağı olur.

Bu tam bir cevap değil ama umarım bu yardımcı olur.


6
2018-05-11 02:39



Tekrarlı olarak sahip olunan ve bir grup mysql ile ayarlanacak / var / log ayarlanması bir linux sistemini oldukça kötü bir şekilde kesecektir. İnsanlara bunu yapmamalarını şiddetle tavsiye ederim. Bunun yerine, bunu özellikle mysql'nin yazmaya çalıştığı günlük dosyasına çalıştırın ve eğer değilse, önce ona dokunun. - John Hunt
Bir şey biliyor musun, John Hunt? Haklısın. Klasörü değiştireceğim. - RolandoMySQLDBA


Mysql sürümü> 5.0 ise, çoğaltma ayarlarınız master-host, master-user, master-password ve my.cnf'inizdeki birkaç tane daha göz ardı edilecektir. İlk çoğaltma kurulumu için CHANGE MASTER TO kullanın.

Karşılaştırmak http://dev.mysql.com/doc/refman/5.1/en/replication-howto-slaveinit.html


0
2017-10-02 08:18





İçin ayarınız log-bin yanlıştır, bu yüzden MySQL ikili günlükleri yazamaz. Bu bir dosya adı değil, kısmi bir dosya adıdır Desen, MySQL bir dizini başlatacak ve bir sıra numarası ve uzantı ekleyecektir. Her zamanki ayar gibi bir şey

log-bin=log-bin

Kılavuzu kontrol et.


0
2017-11-15 23:50