我正在尝试在 CentOS7 下的 2 个 MariaDB 数据库版本 5.5.68 之间设置主从复制。
第一步是直截了当:
- 修改my.cnf.conf,在[mysqld]下添加如下几行
server_id=1
log-basename=master
log-bin
binlog-format=mixte
- 重启 mariadb
systemctl restart mariadb
- 登录 mariaDB,为复制创建一个新用户并授予他权限。
mysql -u root -p
MariaDB [(none)]> STOP SLAVE;
MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
- 锁定数据库并记住位置编号。MariaDB [(none)]> 带读锁的刷新表;MariaDB [(none)]> 显示主状态;
问题:在那个阶段,我应该得到一个带有位置编号的表格,但我收到一条消息:
MariaDB [(none)]> SHOW MASTER STATUS;
Empty set (0.00 sec)
经过几次故障排除后,我发现它可能与缺少的二进制日志记录有关。以下命令和结果证实了这一点。
MariaDB [(none)]> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
我尝试了几种配置(更改 my.cnf.conf 以提供 log-bin 路径,bin-log-format 从 mixte 更改为 row)以激活二进制日志记录,但一切都失败了。
我被困住了。