use*_*747 5 mysql phpmyadmin docker adminer docker-compose
我是码头工人和容器世界的新手。在我的本地计算机上设置 mysql 客户端时遇到问题。我指的是这个教程。
\n我的 docker-compose.yml 文件看起来像
\nversion: "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
下面是命令的输出
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
收到错误消息
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 服务器设置不正确。有什么指点吗?
\n更新1
\n通过图像,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
rub*_*o77 10
如果您使用 docker,并且像您的示例一样,您的数据库 docker-container 被调用,db
则按以下Server
形式输入:
System: Mysql
Server: db
Username: root
Password: ...
Database: ...
Run Code Online (Sandbox Code Playgroud)
我不熟悉 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 服务。
归档时间: |
|
查看次数: |
8653 次 |
最近记录: |