Как запустить Phpmyadmin, Mysql и Apache Tomcat с помощью файла Docker-Compose? - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь запустить веб-приложение на Java. Таким образом, я должен настроить MySQL, phpmyadmin и Apache Tomcat для доступа к веб-сайту. Я хочу использовать докер и его приложение 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

Как установить приложения (mysql, phpmyadmin, tomcat) с помощью docker-compose?

1 Ответ

0 голосов
/ 06 января 2019

В настоящее время phpmyadmin и MySQL могут работать вместе. Это решено.

ПЛАН А: Это мой 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

Теперь вы можете войти в MySQL через phpmyadmin в http://localhost:8080

Это также можно решить этим методом.

ПЛАН Б: Это мой 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

Теперь вы можете перейти в MySQL через phpmyadmin в http://localhost:8080

Ссылка: phpMyAdmin на MySQL 8.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...