我正在尝试运行java web应用程序。因此,我必须设置MySQL,phpmyadmin和Apache Tomcat来访问网站。我想使用 docker 及其docker-compose
应用程序来简化安装(如果我可以学习的话)。
我无法将mysql
和phpmyadmin
应用程序设置为协同工作。如果我能通过这第一步,我将尝试安装tomcat
.
这是我使用的代码(docker-compose.yml
)
version: '2'
services:
db:
image: mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8080:80"
environment:
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
depends_on:
- db
links:
- db
我在命令行应用程序中使用docker-compose up
打开上述代码。
我要http://localhost:8080/
页面,我正在输入admin
作为用户名,12345
为密码。
我得到的错误是:
Cannot log in to MySQL server
mysqli_real_connect (): The server requested authentication method
mysqli_real_connect (): (HY000 / 2054): The server requested authentication method
如何安装带有docker-compose
的应用程序(mysql
、phpmyadmin
、tomcat
)?
目前phpmyadmin和MySQL可以一起工作。它解决了。
计划A:这是我docker-compose.yml
文件:
version: '2'
services:
db:
container_name: db
image: mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
command: --default-authentication-plugin=mysql_native_password
phpmyadmin:
depends_on:
- db
container_name: phpmyadmin
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8080:80"
environment:
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
PMA_HOST: db
现在,您可以通过phpmyadmin
进入MySQL
http://localhost:8080
也可以用这种方法来解决。
计划B:这是我docker-compose.yml
文件:
version: '2'
services:
db:
container_name: db
image: mysql
restart: always
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: myDb
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
phpmyadmin:
depends_on:
- db
container_name: phpmyadmin
image: phpmyadmin/phpmyadmin
restart: always
ports:
- "8080:80"
environment:
MYSQL_USER: admin
MYSQL_PASSWORD: 12345
MYSQL_ROOT_PASSWORD: root
PMA_HOST: db
命令行的命令:
$ docker stop phpmyadmin
$ docker exec -it db bash
$ mysql -u root -proot
$ ALTER USER root IDENTIFIED WITH mysql_native_password BY 'root';
$ exit
$ exit
$ docker start phpmyadmin
现在,您可以通过phpmyadmin
进入MySQL
http://localhost:8080
参考:MySQL 8.0上的phpMyAdmin
version: '3.1'
services:
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: 1234
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
MYSQL_ROOT_PASSWORD: 1234
links:
- db