【问题标题】:Mysql 8 with docker return Host '172.xx.x.x' is not allowed to connect to this MySQL serverMysql 8 with docker return Host '172.xx.x.x' is not allowed to connect to this MySQL server
【发布时间】:2020-08-27 09:59:54
【问题描述】:

我的问题有点奇怪。

当我启动容器时,任何数据库管理器都无法连接到我的数据库。 我明白了

mysql      | 2020-05-11T15:48:56.348312Z 8 [Warning] [MY-010055] [Server] IP address '172.21.0.1' could not be resolved: Name or service not known

但是当我使用上面的命令通过终端执行我的迁移后,我可以通过任何数据库管理器正常访问我的数据库。

$ docker-compose exec php-fpm php artisan migrate

我的 docker-compose.yml

  #MySQL Service
  mysql:
    image: mysql:8
    container_name: mysql
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: database
      MYSQL_ROOT_PASSWORD: root
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - ./mysql/dbdata:/var/lib/mysql/
      - ./mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - app-network

还有我的“my.cnf”

[mysqld]
general_log = 1
general_log_file = /var/lib/mysql/general.log
secure-file-priv= NULL
#Accept connections from any IP address
bind-address = 0.0.0.0

【问题讨论】:

  • 嗨。您运行了什么命令导致上面的日志?您尝试如何(以及从何处)连接到 MySQL?
  • 嗨。我执行“docker-compose up”,所以当我把所有容器都装好时,终端仍然可以显示日志。当我尝试从我的数据库管理器访问时,控制台显示此错误并且我的数据库管理器说 root@172.xx.x 是不允许的。
  • 你想从哪里访问?来自主机或其他容器?
  • 来自主机。正如我在另一个容器中所说的 php-laravel 它可以工作。将它与 php-laravel 一起使用后,我可以从任何主机访问。但第一次我把所有的容器都装起来了,我做不到。我尝试使用 Dberaver 和 Heidsql,但都遇到了同样的错误

标签: docker mysql-8.0


【解决方案1】:

我修复了它,将 mysql 版本更新为 8.0.20,并将以下行添加到我的“my.cnf”文件中。

sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
default-authentication-plugin=mysql_native_password

所以我的文件现在是这样的

[mysqld]
general_log = 1
general_log_file = /var/lib/mysql/general.log
secure-file-priv= NULL
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
default-authentication-plugin=mysql_native_password

【讨论】:

  • 就我而言,它仅在容器第二次运行时才有效。那是因为 mysql 服务在第一次失败后重新启动。因此 mysql 加载新配置,绑定地址设置为 0.0.0.0。如何解决这个问题?
  • 我遇到了同样的问题。在我将版本从 8 更新到 8.0.20 后,我得到了修复。
猜你喜欢
  • 2018-02-16
  • 2017-12-05
  • 2013-10-06
  • 1970-01-01
  • 2016-06-20
  • 2020-11-17
  • 2012-07-15
  • 2021-02-04
  • 2023-03-06
相关资源
最近更新 更多