管理员 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

use*_*747 5 mysql phpmyadmin docker adminer docker-compose

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

\n

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

\n
version: "3.7"\nservices: \n  db:\n    image: mysql\n    container_name: "mySql-wordpress"\n    restart: always   \n    environment: \n      MYSQL_ROOT_PASSWORD: p@55w0rD@1234\n    ports: \n      - "3306:3306"\n    command: --default-authentication-plugin=mysql_native_password\n    networks: \n      - back\n  adminer:\n    image: adminer\n    restart: always\n    ports:\n      - 8282:8080\nnetworks: \n  back:\nvolumes: \n  db_data:\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
 CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS\n                                    NAMES\n8ecd82867a06        mysql                   "docker-entrypoint.s\xe2\x80\xa6"   37 seconds ago      Up 34 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp\n                                    mySql-wordpress\nae01696e6445        adminer                 "entrypoint.sh docke\xe2\x80\xa6"   8 minutes ago       Up 7 seconds        0.0.0.0:8282->8080/tcp\n                                    ae01696e6445_wordpressdemo_adminer_1\naa7e1055fc99        phpmyadmin/phpmyadmin   "/docker-entrypoint.\xe2\x80\xa6"   16 minutes ago      Up 16 minutes       0.0.0.0:8181->80/tcp\n                                    wordpressdemo_phpmyadmin_1\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

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

\n

在此输入图像描述

\n

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

\n

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

\n

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

\n

在此输入图像描述

\n

看来我的 SQL 服务器设置不正确。有什么指点吗?

\n

更新1

\n

通过图像,mysql:5.7 我可以看到下面的两条错误消息phpMyAdmin

\n

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

\n

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

\n

rub*_*o77 10

如果您使用 docker,并且像您的示例一样,您的数据库 docker-container 被调用,db则按以下Server形式输入:

System: Mysql
Server: db
Username: root
Password: ...
Database: ...
Run Code Online (Sandbox Code Playgroud)


mic*_*h94 5

我不熟悉 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 服务。