在docker容器中运行mysql服务器和phpmyadmin

时间:2017-11-25 22:45:17

标签: mysql docker phpmyadmin

我为MySQL server

启动了一个docker容器
docker run --detach --name=mysql_db_server --env="MYSQL_ROOT_PASSWORD=password" mysql

然后我运行phpmyadmin的另一个容器,该容器链接到MySQL server,如下所示

docker run --name myadmin -d --link mysql_db_server:mysql -p 8080:80 phpmyadmin/phpmyadmin

我可以在phpmyadmin上看到http://localhost:8080,但我无法使用

登录

root --- passwordadmin --- password

myphpadmin login

$docker ps -a

输出

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                  NAMES
85e68b8bab30        phpmyadmin/phpmyadmin   "/run.sh phpmyadmin"     3 hours ago         Up 3 hours          0.0.0.0:8080->80/tcp   myadmin
b4d130cdb230        mysql                   "docker-entrypoint.s…"   3 hours ago         Up 3 hours          3306/tcp               mysql_db_server

我做错了什么?

2 个答案:

答案 0 :(得分:1)

使用myadmin而不是mysql

docker run --name myadmin -d --link mysql_db_server:myadmin -p 8080:80 phpmyadmin/phpmyadmin

答案 1 :(得分:0)

使用您的用户登录到MySQL控制台:

为此运行命令- docker exec -it app_db_1 / bin / bash

现在您可以使用您的用户登录MYSQL控制台:

root @ 5f1d313df243:/#mysql -uroot -ppassword 并在此处使用密码更改身份验证插件:

mysql>通过“ PASS”用mysql_native_password更改用户根目录;

您将获得类似以下的输出-查询正常,受影响的0行(0.08秒)

退出

退出

在MySQL 8.0参考手册上阅读有关首选身份验证插件的更多信息

https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

它将与docker以及docker-compose完美配合:

现在您可以使用root和PASS在http://localhost:8080上登录phpMyAdmin。

(不要使用端口8080,因为当系统已经使用8080端口的其他进程时,它可能会出现问题。)