Mad*_*era 1 mysql phpmyadmin docker
我已经在digitalocean droplet上成功安装了docker,下面显示了我的 docker-compose.yml配置:
version: '2.1'
services:
mysql:
build:
context: ./docker/mysql
image: mysql:latest
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_USER: root
MYSQL_PASSWORD: root_pass
volumes:
- mysqldata:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
links:
- mysql:db
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: root_pass
restart: always
ports:
- 8080:80
Run Code Online (Sandbox Code Playgroud)
一旦我启动了 docker 服务,一切正常,如下面的屏幕截图所示。

我可以使用我的用户凭据在终端内完美地访问我的 mysql 数据库。
但问题是当我尝试访问 phpmyadmin 时droplet_ip:8080说:
#1045 - Access denied for user 'root'@'172.18.0.4' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
在这里我也使用了相同的用户名(root)密码(root_pass)。
任何有关此问题的建议将不胜感激。谢谢你。
以下对我有用
version: '3.1'
volumes:
mysql-volume:
services:
mysql:
image: mysql
container_name: mysql
volumes:
- mysql-volume:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: db
MYSQL_USER: user
MYSQL_PASSWORD: supersecret
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: mysql
MYSQL_USER: user
MYSQL_PASSWORD: supersecret
ports:
- 80:80
depends_on:
- mysql
Run Code Online (Sandbox Code Playgroud)
不要混淆 root 用户和 MySQL 用户。在上面的示例中,我使用 MySQL 用户通过 phpadmin 登录。如果你想使用你的 root 用户登录,你不必指定 MySQL 用户,它看起来像这样(你不需要为 phpmyadmin 指定一个用户,因为它总是 root):
version: '3.1'
volumes:
mysql-volume:
services:
mysql:
image: mysql
container_name: mysql
volumes:
- mysql-volume:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: db
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: rootpass
ports:
- 80:80
depends_on:
- mysql
Run Code Online (Sandbox Code Playgroud)
同样非常重要的是,当您想要重新创建整个设置时,请删除您的 mysql 卷。( docker volume rm ..). 因为可能你的mysql在进行更改后再次以相同的卷启动。
| 归档时间: |
|
| 查看次数: |
5143 次 |
| 最近记录: |