面试题答案
一键面试常见错误及解决方法
- 主从服务器配置错误
- 错误描述:主从服务器的
my.cnf
配置文件中,相关复制参数设置不正确,比如主服务器没有正确配置log-bin
选项,从服务器没有正确设置server-id
等。 - 排查思路:检查主服务器的
my.cnf
,确保log-bin
选项已启用且配置正确,例如log-bin=/var/log/mysql/mysql-bin.log
。检查从服务器的my.cnf
,确认server-id
是唯一的且与主服务器不同,例如server-id=2
。 - 解决方法:按照上述要求正确配置主从服务器的
my.cnf
文件,修改后重启 MariaDB 服务使配置生效。
- 错误描述:主从服务器的
- 权限不足错误
- 错误描述:从服务器使用的复制账号在主服务器上没有足够的权限。例如,缺少
REPLICATION SLAVE
权限。 - 排查思路:在主服务器上使用
SHOW GRANTS FOR '复制账号'@'从服务器IP';
命令查看该账号权限。如果没有REPLICATION SLAVE
权限,则表明权限不足。 - 解决方法:在主服务器上执行
GRANT REPLICATION SLAVE ON *.* TO '复制账号'@'从服务器IP' IDENTIFIED BY '密码';
命令赋予相应权限,然后执行FLUSH PRIVILEGES;
使权限生效。
- 错误描述:从服务器使用的复制账号在主服务器上没有足够的权限。例如,缺少
- 二进制日志位置错误
- 错误描述:在
init_slave
时,指定的主服务器二进制日志文件名或位置不正确,导致从服务器无法正确连接主服务器获取日志进行复制。 - 排查思路:在主服务器上执行
SHOW MASTER STATUS;
命令获取当前二进制日志文件名和位置。检查从服务器init_slave
语句中指定的日志文件名和位置是否与之匹配。 - 解决方法:如果不匹配,重新获取主服务器正确的二进制日志文件名和位置,然后在从服务器上使用
CHANGE MASTER TO MASTER_LOG_FILE='正确的日志文件名', MASTER_LOG_POS=正确的位置;
命令修改配置,之后再执行START SLAVE;
启动复制。
- 错误描述:在
- 网络连接问题
- 错误描述:主从服务器之间的网络不通或者防火墙阻挡了 MariaDB 复制所需的端口(默认为 3306)。
- 排查思路:在从服务器上使用
ping
命令测试与主服务器的网络连通性。同时,检查主从服务器的防火墙设置,看是否开放了 3306 端口。 - 解决方法:如果网络不通,检查网络设备配置,确保线路正常。如果是防火墙问题,在主从服务器上开放 3306 端口。例如在 Linux 系统下,使用
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
命令开放端口(不同系统命令可能略有差异)。