首页 > 解决方案 > 在docker中运行wordpress mysql数据库时如何访问它?

问题描述

提前感谢您帮助我解决这个问题。我一直在绕圈子试图弄清楚这一点,但很可能我错过了一些非常简单的东西。

我在这里按照快速入门指南在 Docker 中使用 Wordpress:https ://docs.docker.com/compose/wordpress/

但是,我无法访问我的 mysql 数据库。

这是我的 docker-compose 文件(几乎是从教程中复制的):


services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     command: "--default-authentication-plugin=mysql_native_password"
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
       MYSQL_ROOT_HOST: "%"

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

我可以通过运行进入我的数据库容器的外壳docker exec -it db_name /bin/bash

在那里,我无法运行 mysql。这是我的尝试:

root@79f23dc84547:/# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

当我尝试使用用户名和密码时:

root@79f23dc84547:/# mysql -u wordpress -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'wordpress'@'localhost' (using password: YES)

环境变量已明确设置:

root@79f23dc84547:/# echo $MYSQL_ROOT_PASSWORD    
somewordpress

再次,提前感谢您!

标签: mysqlwordpressdockerdocker-compose

解决方案


您的客户端需要使用与服务器 ( doc )相同的选项运行。实际上,对于 5.7 版,您应该删除修复 (问题) 的选项。

#remove
command: "--default-authentication-plugin=mysql_native_password"

推荐阅读