我用的是服务器是centos7
1. 未映射端口:
mysql进程默认端口是3306,但是由于是在docker容器内,所以要将宿主机(服务器)端口映射容器内到端口。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql
然后要开放宿主机的3306端口,我用的是腾讯云
然后在尝试连接mysql
2. MySQL 配置问题:
MySQL 默认可能只允许本地连接。你需要确保 MySQL 配置文件 my.cnf
中 bind-address
设置为 0.0.0.0
,以允许来自所有 IP 地址的连接。
你可以在 Docker 容器内修改 MySQL 配置文件(通常位于 /etc/mysql/my.cnf
或 /etc/my.cnf
):
docker exec -it mysql-container bash
vi /etc/mysql/my.cnf
#或者 vi /etc/my.cnf
添加bind-address配置
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
bind-address = 0.0.0.0
注:
i :编辑文档
Esc :退出编辑状态
:wq :保存编辑
3.MySQL 容器在启动过程中遇到了问题,导致其无法正常运行或已经崩溃
1.检查容器的状态以了解其是否已停止或崩溃:
docker ps -a
查找状态列中的信息。如果容器已退出,使用以下命令查看详细的容器日志,以了解为何未启动成功:
docker logs b65f23b99fe2d494cd0108148682e6f6b1f376472fc7d9492baf4059013dd4d1
2.尝试重启容器:
docker start b65f23b99fe2d494cd0108148682e6f6b1f376472fc7d9492baf4059013dd4d1