実現したいこと、やってみたこと
- [環境]
CentOS 7.6
MySQL 10.4.14
メールサーバを送信用と受信用で分けるために、DBのレプリケーションしたいと考えています。(PostfixのDB)
公式サイトをもとにやってみました。
今回DB自体触るのが初めてなため、理解が及んでいない発言をするかもしれませんが、その際はご指摘いただけると幸いです。
※本番環境ではなく、vagrantで立てています。SSHでそれぞれつながるようにはなっています。
(masterdb-server:192.168.33.121)
(slavedb-server:192.168.33.131)
[masterdb-serverにて]
/etc/my.conf
[mysqld] log-bin server_id=101 log-basename=master101 binlog-format=mixed
MariaDB[postfix]> CREATE USER 'replication_user'@'%' IDENTIFIED BY 'xxxxxxxx'; MariaDB[postfix]> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
※Mysqlにて SHOW MASTER STATUS \Gを確認してみると、
MariaDB [postfix]> show master status \G Empty set (0.000 sec) ```となってしまう。 **[slavedb-serverにて]** /etc/my.conf
[mysqld]
log-bin
server_id=102
MariaDB[postfix]>CHANGE MASTER TO
->MASTER_HOST='192.168.33.121',
->MASTER_USER='replication_user',
->MASTER_PASSWORD='xxxxxxxx',
->MASTER_LOG_FILE='mariadb-log',
->MASTER_LOG_POS=4;
MariaDB[postfix]>CHANGE MASTER TO MASTER_USE_GTID = slave_pos;
MariaDB[postfix]>START SLAVE;
MariaDB[postfix]>SHOW SLAVE STATUS \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.33.121
Master_User: replication_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mariadb-log
Read_Master_Log_Pos: 4
Relay_Log_File: servername-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mariadb-log
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 4
Relay_Log_Space: 256
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work
(or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: Slave_Pos
Gtid_IO_Pos:
Replicate_Do_Domain_Ids:
Replicate_Ignore_Domain_Ids:
Parallel_Mode: conservative
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Slave_DDL_Groups: 0
Slave_Non_Transactional_Groups: 0
Slave_Transactional_Groups: 0
1 row in set (0.000 sec)
ERROR: No query specified
という具合にエラーが出てしまいました。 ### 解決したいこと その1. /etc/my.cnfにてserver-idを変更したはずなのに、同じといわれるのは、なぜなのか。またどこを直せばこのエラーはなくなるのか。 **解決済み** その2. masterdb-serverにて、SHOW MASTER STATUS \G とやると、empty setとなってしまうのはなぜか。 (その1が解決したが、masterdb-serverでバイナリログが開けないというログが出てしまった。)
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Binary log is not open'
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/28 07:33
2020/08/28 07:41