无法通过本地主机通过 HeidiSQL 连接到 mysql 容器
Unable to connect to mysl container via HeidiSQL via localhost
环境:
我已经通过以下命令在 Windows 11 上创建并启动了一个 Docker 容器:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
然后我使用以下选项创建了一个新的 HeidiSQL 会话:
图书馆:libmysql.dll
主机:127.0.0.1
用户:root
密码:root
端口:3306
点击“打开”后,显示 “无法连接到‘127.0.0.1’(10061) 上的 MySQL 服务器”。
我可以通过终端连接到容器。
经过一些研究和一些实验,我找到了解决方案。
首先必须强制端口转发为3306:3306。
您必须使用参数 -p 3306:3306
.
创建并 运行 Docker 容器
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
现在错误改了,不过至少可以连上服务器
“用户 'root'@'172.17.0.1' 的访问被拒绝(使用密码:YES)”
现在在网上找到的大多数解决方案都会告诉您创建一个新用户 'root'@'172.17.0.1'
并授予该用户所有权限。
但是,即使在创建用户后,HeidiSQL 也无法再次登录(同样的“访问被拒绝”错误)。
奇怪的是,如果您使用终端以新用户登录,然后尝试使用 HeidiSQL 登录,现在可以了,每次重新启动容器时都会发生这种情况。
搜索后我发现了这个:https://github.com/HeidiSQL/HeidiSQL/issues/980
所以问题是libmysql.dll已经过时了,不支持了,每次用HeidiSQL第一次访问都失败
您必须切换到也与 mysql 兼容的 libmariadb.dll,不需要创建新用户。
不要使用 libmysql-6.1.dll,因为由于某些原因会崩溃并且无法工作...
环境:
我已经通过以下命令在 Windows 11 上创建并启动了一个 Docker 容器:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
然后我使用以下选项创建了一个新的 HeidiSQL 会话:
图书馆:libmysql.dll
主机:127.0.0.1
用户:root
密码:root
端口:3306
点击“打开”后,显示 “无法连接到‘127.0.0.1’(10061) 上的 MySQL 服务器”。
我可以通过终端连接到容器。
经过一些研究和一些实验,我找到了解决方案。
首先必须强制端口转发为3306:3306。
您必须使用参数 -p 3306:3306
.
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
现在错误改了,不过至少可以连上服务器
“用户 'root'@'172.17.0.1' 的访问被拒绝(使用密码:YES)”
现在在网上找到的大多数解决方案都会告诉您创建一个新用户 'root'@'172.17.0.1'
并授予该用户所有权限。
但是,即使在创建用户后,HeidiSQL 也无法再次登录(同样的“访问被拒绝”错误)。
奇怪的是,如果您使用终端以新用户登录,然后尝试使用 HeidiSQL 登录,现在可以了,每次重新启动容器时都会发生这种情况。
搜索后我发现了这个:https://github.com/HeidiSQL/HeidiSQL/issues/980
所以问题是libmysql.dll已经过时了,不支持了,每次用HeidiSQL第一次访问都失败
您必须切换到也与 mysql 兼容的 libmariadb.dll,不需要创建新用户。
不要使用 libmysql-6.1.dll,因为由于某些原因会崩溃并且无法工作...