解决:连接不上 docker中的mysql

本文介绍如何在Docker中安装MySQL,并提供了一种解决Navicat远程连接失败的方法,包括检查MySQL服务状态、调整密码策略等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker 中安装MySQL :

docker pull mysql

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

在docker中安装了mysql后,用SQLyog去连接的时候出现如下错误。

解决方法:

1、查看我们想要连接的mysql是否启动

#查看在运行的容器
docker ps -s 

2、进入容器

# docker exec -it 容器号或名 /bin/bash

docker exec -it b30062adc08c /bin/bash
# 或
docker exec -it mysql /bin/bash

3、进入mysql

mysql -uroot -p

#输入密码(跟之前在windows上运行mysql是一样的)

4、查看MySQL的信息

select host,user,plugin,authentication_string from mysql.user;

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码

6、修改密码

mysql> use mysql;
mysql> alter user 'root'@'%' identified with mysql_native_password by '123456';
mysql> flush privileges;
mysql> select host,user,plugin,authentication_string from mysql.user;

再次用navicat远程连接mysql就成功了

如果主机无法连接Docker 中的 MySQL,可能是由于以下原因: 1. MySQL 容器没有正确映射端口 在启动 MySQL 容器时,需要将 MySQL 容器中的 3306 端口映射到主机上的一个端口,否则主机无法连接MySQL 容器。可以使用以下命令启动 MySQL 容器,并将容器中的 3306 端口映射到主机上的 3306 端口: ``` docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest ``` 这个命令会启动一个名为 mysql 的容器,并将容器中的 3306 端口映射到主机上的 3306 端口。其中,password 是 MySQL 的 root 用户的密码。 2. 容器 IP 地址正确 在主机上连接Docker 容器中的 MySQL 时,需要使用容器的 IP 地址。可以使用以下命令获取容器的 IP 地址: ``` docker inspect mysql | grep IPAddress ``` 这个命令会输出容器的 IP 地址。在主机上连接MySQL 时,需要使用这个 IP 地址。 3. 安全组或防火墙配置正确 如果主机和容器在同的网络中,可能需要在主机的防火墙或者安全组中添加规则,允许主机访问容器中的 MySQL 端口。在 Linux 系统中,可以使用以下命令打开端口: ``` sudo ufw allow 3306/tcp ``` 在 Windows 系统中,可以使用以下命令打开端口: ``` netsh advfirewall firewall add rule name="MySQL" dir=in action=allow protocol=TCP localport=3306 ``` 这个命令会打开主机的 3306 端口,允许外部访问。注意,这个操作可能会导致主机的安全风险增加,请谨慎操作。 如果以上方法都无法解决问题,可以尝试在容器中运行以下命令检查容器中的 MySQL 是否正常运行: ``` docker exec -it mysql bash ``` 这个命令会进入到 MySQL 容器中的命令行界面,可以在这个界面中尝试连接 MySQL 数据库,查看是否存在问题。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值