【问题标题】:adminer - SQLSTATE[HY000] [2002] No such file or directoryadminer - SQLSTATE[HY000] [2002] 没有这样的文件或目录
【发布时间】:2019-10-19 10:04:16
【问题描述】:

我是码头工人和容器世界的新手。在我的本地机器上设置 mysql 客户端时遇到问题。我指的是this教程。

我的 docker-compose.yml 文件看起来像

version: "3.7"
services: 
  db:
    image: mysql
    container_name: "mySql-wordpress"
    restart: always   
    environment: 
      MYSQL_ROOT_PASSWORD: p@55w0rD@1234
    ports: 
      - "3306:3306"
    command: --default-authentication-plugin=mysql_native_password
    networks: 
      - back
  adminer:
    image: adminer
    restart: always
    ports:
      - 8282:8080
networks: 
  back:
volumes: 
  db_data:

我能够成功执行docker-compose up -d 命令没有问题。以下是docker ps 命令的输出

 CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS
                                    NAMES
8ecd82867a06        mysql                   "docker-entrypoint.s…"   37 seconds ago      Up 34 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp
                                    mySql-wordpress
ae01696e6445        adminer                 "entrypoint.sh docke…"   8 minutes ago       Up 7 seconds        0.0.0.0:8282->8080/tcp
                                    ae01696e6445_wordpressdemo_adminer_1
aa7e1055fc99        phpmyadmin/phpmyadmin   "/docker-entrypoint.…"   16 minutes ago      Up 16 minutes       0.0.0.0:8181->80/tcp
                                    wordpressdemo_phpmyadmin_1

现在当我尝试登录 Adminer portal 时,我收到了错误消息

SQLSTATE[HY000] [2002] No such file or directory

我也尝试安装 phpmyadmin/phpmyadmin Image 但出现以下错误:

mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client

我的 SQL 服务器似乎没有正确设置。有什么指点吗?

更新 1

使用图像mysql:5.7,我可以在phpMyAdmin 上看到以下两条错误消息

mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known

mysqli_real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known

【问题讨论】:

    标签: mysql docker phpmyadmin docker-compose adminer


    【解决方案1】:

    我不熟悉 docker,但我在尝试登录时遇到了同样的 No such file or directory 错误。

    我通过创建一个自定义 php.ini 文件来告诉 PHP MYSQL 将其套接字文件放在哪里来修复它。我手动编译了 PHP,所以我还没有 php.ini。检查您是否已经拥有一个。

    在我的 Debian Linux 下,我在这里找到了套接字文件 /var/run/mysqld/mysqld.sock

    所以在 php.ini 文件里面,添加了这个:

    mysqli.default_socket = "/var/run/mysqld/mysqld.sock"

    重新启动您的 PHP 服务。

    【讨论】:

    • 感谢您的提示。这在我使用的 Docker 容器中也有效。
    【解决方案2】:

    如果您使用 docker,并且像在您的示例中一样,您的数据库 docker-container 被称为 db,然后在表单中输入 Server

    System: Mysql
    Server: db
    Username: root
    Password: ...
    Database: ...
    

    【讨论】:

      猜你喜欢
      • 2020-05-07
      • 2015-06-24
      相关资源
      最近更新 更多