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

slwdgvem  于 2022-11-09  发布在  PHP
关注(0)|答案(3)|浏览(225)

我是新的docker和容器世界。有麻烦设置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图像,但得到以下错误:
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 Server似乎没有正确设置。有任何指针吗?

更新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

xqk2d5yq

xqk2d5yq1#

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

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

vsaztqbk2#

我不熟悉Docker,但是当我尝试登录时,我遇到了与管理员相同的No such file or directory错误。
我通过创建一个自定义的php.ini文件来告诉PHP MYSQL把它的socket文件放在哪里来修复它。我手动编译了PHP,所以我还没有一个php.ini。检查一下你是否已经有了一个。
在Debian Linux下,我在这里找到了套接字文件 /var/run/mysqld/mysqld.sock
所以在php.ini文件中,添加了以下内容:
mysqli.default_socket = "/var/run/mysqld/mysqld.sock"
重新启动PHP服务。

5lhxktic

5lhxktic3#

在Adminder服务的docker-compose文件中添加行

environment:
      ADMINER_DEFAULT_SERVER: db

ADMINER_DEFAULT_SERVER的名称必须与数据库的服务名称相同。在您的情况下,它是'db'当您转到localhost:8282时,管理员应自动提取服务器名称。

相关问题