Docker部署Shopware 6.5.1.0数据库登录失败:Permission denied解决方法
解决Shopware Docker环境下Adminer登录MySQL权限拒绝问题
可能的原因及对应解决步骤
1. 修正MySQL服务器地址
在Docker环境中,Adminer容器和MySQL容器是独立的,你填写的Localhost指向的是Adminer容器自身,而非MySQL容器。需要改为Shopware Docker配置中MySQL容器的服务名(通常为mysql):
- 在Adminer登录界面,Server字段填写
mysql - 保持用户名
root、密码root、数据库shopware不变,重新尝试登录
2. 验证MySQL容器的root密码是否正确
如果上述方法无效,检查Shopware Docker的配置文件:
- 查看
docker-compose.yml(或相关配置文件)中MySQL服务的MYSQL_ROOT_PASSWORD值,确认是否为root - 若密码不符,修改Adminer登录的密码为配置文件中的对应值,或调整容器环境变量后重启MySQL容器:
docker-compose restart mysql
3. 确保root用户允许外部连接
默认情况下,MySQL容器的root用户可能仅允许从容器内部访问,可通过以下步骤修改权限:
- 进入MySQL容器:
docker-compose exec mysql bash - 登录MySQL:
输入root密码(通常为mysql -u root -proot,或配置文件中的对应值) - 授予root用户所有主机访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES; - 退出容器后,重新尝试Adminer登录
4. 检查Adminer容器的网络配置
确保Adminer容器和MySQL容器处于同一Docker网络:
- 查看容器所属网络:
docker inspect mysql | grep Networks docker inspect adminer | grep Networks - 若不在同一网络,修改
docker-compose.yml中Adminer服务的networks配置,加入MySQL所在的网络,然后重启Adminer容器:docker-compose restart adminer
内容的提问来源于stack exchange,提问作者DevOPlug
相关产品推荐
相关产品推荐

