如何解决在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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。