
每天分享技术栈,开发工具等
兄弟姐妹们,做DBA你有没有遇到过这种情况?主库写了数据,结果从库就是不同步,或者延迟特别大,老板天天催着查日志,找原因,这时一查命令,居然报错说“bash: show slave status: 未找到命令”……这真是让人抓狂!今天这篇文章就带你一步步搞定MySQL主从复制的常见故障排查,并且教你遇到“命令不存在”这类错误该怎么破。
执行命令的位置:
在从库的mysql客户端执行:
SHOW SLAVE STATUS\G
这条命令是用来查看从库复制线程状态的关键。
注意:
SHOW SLAVE STATUS是mysql内部的SQL命令,不是Linux命令,所以需要在mysql客户端里执行。show slave status,会提示:
bash: show: command not found
这说明你把SQL命令当成了shell命令,记住哦,mysql命令和shell命令是分开的!
步骤:
ssh user@node1
docker exec-it mysql_slave1 bash
mysql -uroot-p
输入密码后,进入MySQL命令行界面。
SHOW SLAVE STATUS\G
这样就不会出现“bash: show: command not found”的错误了。
排查思路:
/var/log/mysql/error.log)。mysql -uroot -p时报错:
bash: mysql: command not found
这是因为MySQL客户端没装或环境变量没配置。
解决办法:
which mysql
没返回路径,说明没安装。
sudo yum install mysql
(Almalinux 默认用 yum)
mysql命令即可使用。
dockerexec-it mysql_slave1 mysql -uroot-p
这样绕过宿主机没客户端的问题。
假设复制挂了,可以这样重启:
STOP SLAVE;
START SLAVE;
SHOW SLAVE STATUS\G
依然是在mysql客户端执行。
SHOW SLAVE STATUS示例截图:
