环境:
我已经通过以下命令在Windows 11上创建并启动了一个Docker容器:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest然后,我使用以下选项创建了一个新的HeidiSQL会话:
图书馆: libmysql.dll
东道主: 127.0.0.1
用户:根
密码:根
港口: 3306
单击“打开”后,它表示“无法连接到'127.0.0.1‘(10061)上的MySQL服务器”。
我可以通过码头连接到集装箱。
发布于 2022-02-17 15:51:49
经过一些研究和实验,我找到了一个解决办法。
首先,必须迫使港口矮化为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‘的访问(使用密码:是)”
现在,在web上找到的大多数解决方案都告诉用户创建一个新用户'root'@'172.17.0.1',并将所有权限授予用户。
但是,即使在创建用户之后,HeidiSQL也无法再次登录(相同的“拒绝访问”错误)。
奇怪的是,如果您使用终端与新用户登录,然后尝试使用HeidiSQL登录,现在它可以工作了,每次重新启动容器时都会发生这种情况。
在搜索之后,我发现了以下内容:https://github.com/HeidiSQL/HeidiSQL/issues/980
因此,问题是libmysql.dll过时了,不受支持,而且每次尝试使用HeidiSQL进行访问时都会失败。
您必须切换到与mysql兼容的libmariadb.dll,这是创建新用户所不需要的。
不要使用libmysql-6.1.dll,因为崩溃和不工作是出于某些原因.
https://stackoverflow.com/questions/71161296
复制相似问题