在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

再次感谢您!

解决方法

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...