Mariadb 主从复制:空集/不使用二进制日志
Mariadb master slave replication : Empty Set / Not using Binary logs
我正在尝试在 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)]> 显示主状态;
问题:
在那个阶段我应该得到一个 table 和职位编号,但我收到一条消息:
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)以激活二进制日志记录,但一切都失败了。
我卡住了。
已解决!
我使用了 /etc/my.cnf.d/server.cnf 下的 [mysqld] 部分
但是没注意我的/etc/my.cnf文件不见了
所以...“my.cnf.d/*.cnf”文件的内容根本没有用到
解决方案是:
重新创建/etc/my.cnf文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
然后重启mariadb服务
systemctl restart mariadb
我正在尝试在 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)]> 显示主状态;
问题: 在那个阶段我应该得到一个 table 和职位编号,但我收到一条消息:
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)以激活二进制日志记录,但一切都失败了。
我卡住了。
已解决!
我使用了 /etc/my.cnf.d/server.cnf 下的 [mysqld] 部分 但是没注意我的/etc/my.cnf文件不见了
所以...“my.cnf.d/*.cnf”文件的内容根本没有用到 解决方案是:
重新创建/etc/my.cnf文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
然后重启mariadb服务
systemctl restart mariadb