我尝试在Ubuntu 14.04中使用Docker安装/配置phpmyadmin。我是这样开始的:
docker run --name myadmin -d -e PMA_HOST=localhost -e PMA_PORT=3306 -p 8282:80 phpmyadmin/phpmyadmin
字符串
当我尝试登录时,我得到以下错误:
#2002 - Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory") — The server is not responding (or the local server's socket is not correctly configured).
mysqli_real_connect(): (HY000/2002): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2 "No such file or directory")
型
MySQL服务器直接安装在Ubuntu中,而不是Docker中。
有什么想法吗?
5条答案
按热度按时间tsm1rwdh1#
你不能在Docker容器中使用localhost。
字符串
其中172.17.0.1是docker0网桥的主机IP。
bbuxkriu2#
这就是我的工作:
1.检查你的数据库是否已经启动并运行:
字符串
(It应该说活动(运行))
1.在容器中运行phpMyAdmin:
型
1.检查容器是否启动并运行:
型
(检查phpMyAdmin-local状态是否为up)
1.转到“localhost:8283”并检查phpMyAdmin是否存在
1.让你的数据库接收外部请求:
以sudo方式编辑文件:
/etc/mysql
MySQL:nano /etc/mysql/my.cnf
(nano是文本编辑器,可以更改)
并更改这一行:
型
到这一行:(注意“#”)
型
(ctrl+x退出,“y”保存,“enter”确认)
1.给予用户/用户从不同位置(不同于localhost)连接的权限:
修改用户并以root权限登录mysql/mariadb服务器:
型
(运行命令后输入密码)
使用mysql数据库编辑用户:
型
给予特权给特定用户:(如果您有其他用户,可以与root用户不同):
型
然后又道:
型
以及:
型
重新启动mysql服务:
现在你可以用你在前面的命令中指定的用户名和密码登录到phpMyAdmin,mysql/mariadb将接受连接。
v9tzhpje3#
对于mac OS用户,使用host.docker.internal作为主机地址,docker将解析为主机的IP地址。
字符串
nhhxz33t4#
我遇到了同样的问题,之前的答案都不适用于我。我在GitHub issue 271中找到了解决方案,它将本地套接字Map到docker容器:
docker run --rm --name pma-socket -p 8080:80 -e PMA_SOCKET=/run/mysqld/mysqld.sock -v /run/mysqld/mysqld.sock:/run/mysqld/mysqld.sock phpmyadmin:latest
sg3maiej5#
不要通过套接字文件连接,尝试使用IP(127.0.0.1)连接,PMA端口使用您的机器IP,您可以通过ifconfig命令获得。