【问题标题】:Access denied for user 'root'@'172.17.0.1' for a mysql db running in a local Docker container对于在本地 Docker 容器中运行的 mysql 数据库,用户“root”@“172.17.0.1”的访问被拒绝
【发布时间】:2021-12-22 11:42:39
【问题描述】:

我正在尝试连接到在本地 Docker 容器中运行的 mysql 实例,但我得到了一个

ERROR 1045 (28000): Access denied for user 'root'@'172.17.0.1'

我通过运行初始化了容器:

docker image pull mariadb:10.4
docker run --name mariadbtest -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=user -e MYSQL_DATABASE=test -e MYSQL_PASSWORD=password -e MYSQL_ROOT_HOST=localhost -p 3306:3306 -d docker.io/library/mariadb:10.4

当我尝试从主机使用mysql -h localhost -P 3306 --protocol=TCP -u root -p 连接到数据库时,我收到标题中提到的错误。我可以使用相同的命令作为在成功启动 Docker 容器 (mysql -h localhost -P 3306 --protocol=TCP -u user -p) 的命令中初始化的用户进行连接。

我已经验证在运行docker exec -it mariadbtest bashmysql -u root -p 之后,我可以从Docker 容器内部连接到数据库。

如果能对正在发生的事情有任何见解,我将不胜感激。

【问题讨论】:

  • SELECT Host, User FROM mysql.user 你看到了什么?

标签: mysql docker mariadb


【解决方案1】:

MYSQL_ROOT_HOST=localhost 应该被忽略,然后它默认为 % 否则它不会匹配 172.17.0.1

【讨论】:

  • 做到了。谢谢,我将深入研究导致此问题的 MYSQL_ROOT_HOST 环境变量的作用。
  • np,是的,它在图像文档hub.docker.com/_/mariadb 中注明(搜索 MYSQL_ROOT_HOST),不要忘记投票并接受 :)
猜你喜欢
  • 2021-06-26
  • 1970-01-01
  • 2020-11-13
  • 2017-09-26
  • 2020-03-17
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
相关资源
最近更新 更多