无法在数据库容器内连接数据库执行备份操作求助
容器内mysqldump卡“Connecting to localhost”的解决办法
先确认容器内MySQL服务是否运行
执行以下命令检查状态:service mysql status # 或针对systemd系统 systemctl status mysqld如果服务未运行,启动服务:
service mysql start检查MySQL监听地址
容器内的MySQL可能未监听localhost,执行命令查看监听端口:netstat -tulpn | grep mysql若仅监听容器内网IP,执行mysqldump时指定该IP:
# 先获取容器内网IP hostname -i # 替换<容器内网IP>执行备份 mysqldump -uroot -psshh -h <容器内网IP> -v clinic_app_auth > clinic_app_auth.sql指定正确的MySQL Socket文件
若mysqldump找不到默认Socket文件,先获取正确路径:mysql_config --socket然后在备份命令中指定:
mysqldump -uroot -psshh -S /path/to/mysql.sock -v clinic_app_auth > clinic_app_auth.sql验证root用户的localhost连接权限
先登录MySQL:mysql -uroot -psshh查看root用户的允许连接主机:
SELECT user, host FROM mysql.user WHERE user = 'root';若root未授权
localhost连接,执行授权(谨慎操作):GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'sshh' WITH GRANT OPTION; FLUSH PRIVILEGES;排查容器内防火墙/SELinux
- 临时清空iptables规则测试:
iptables -F - 临时关闭SELinux测试:
setenforce 0
- 临时清空iptables规则测试:
内容的提问来源于stack exchange,提问作者Ciasto piekarz
相关产品推荐
相关产品推荐

