Неизвестная ошибка метода аутентификации при использовании образов WordPress и MySQL - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь установить WordPress с MySQL через докер, но у меня есть ошибки связи между контейнером БД и контейнером WordPress.

вот мой файл docker-compose.yml

version: '3'

services:
   db:
     image: mysql:latest
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     links:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes: 
    db_data:

Если я выполняю команду "docker-compose up -d" и открываю журналы контейнера WordPress, у меня появляется эта ошибка:

...
wordpress_1  | Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in Standard input code on line 22
wordpress_1  |
wordpress_1  | Warning: mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in Standard input code on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2054) The server requested authentication method unknown to the client
...

Я добавил команду: '--default-authenticationplugin = mysql_native_password 'в разделе db, и я изменил версию mysql до 5.7, но это не помогло мне решить проблему.Я также посетил эти обсуждения:

Wordpress на Docker-Comose нет запуска

https://serverfault.com/questions/880773/unable-to-access-wordpress-site-created-as-a-docker-stack/880777#880777

https://github.com/docker-library/wordpress/issues/313

СпасибоВы заранее за ваши предложения.

1 Ответ

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

Кажется, что WordPress / PHP пока не поддерживает MySQL v8.Даже wordpress readme image readme предлагает использовать MySQL v5.7.После изменения версии mysql на v5.7 вы можете заметить, что контейнер MySQL аварийно завершает работу с ошибкой, подобной приведенной ниже:

...
db_1         | 2019-01-28T18:45:24.611045Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
db_1         | 2019-01-28 18:45:24 0x7f00e013a740  InnoDB: Assertion failure in thread 139641736111936 in file ut0ut.cc line 942
db_1         | InnoDB: We intentionally generate a memory trap.
...

Чтобы исправить это, проще всего удалить том док-сервера MySQL, используя docker-compose down -v.После этого docker-compose up -d должен работать.

Если это все еще не работает, используйте пример docker-compose из https://hub.docker.com/_/wordpress/. Добавьте его сюда на случай, если в будущем его свернут.

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...