Docker配置软件常见问题解决

36 阅读1分钟

一、MySQL

MySQL远程连接不上

原因一:防火墙没开放

查询防火墙状态: 下图是dead状态

image.png

启动防火墙:systemctl start firewalld
再次查询防火墙状态: systemctl status firewalld

image.png

添加需要开放的端口: firewall-cmd --add-port=9090/tcp --permanent
查询防火墙开放端口列表:firewall-cmd --zone=public --list-ports

image.png

最后别忘了关闭防火墙:systemctl stop firewalld

原因二 没有'root'@'%'用户

进入docker-mysql: docker exec -it mysql /bin/bash
msyql -u root -p

image.png

注意:以下的";"均不要省略
选择mysql数据库:use mysql;
查看相关数据:select user,host,plugin from user;

image.png

如果没有'root'@'%'用户,请创建并修改host、plugin等字段

原因三:root用户没有权限

此时的表现为你能连上数据库,但是无法创建数据库
进入docker-mysql步骤同上
docker exec -it mysql /bin/bash
msyql -u root -p
use mysql;
查看root用户权限: show grants for 'root'@'%';

image.png

此时是什么权限的,需要给它赋权: GRANT ALL PRIVILEGES ON . TO 'root'@'%';
刷新权限:FLUSH PRIVILEGES;
再次查询root权限:show grants for 'root'@'%';

image.png

二、Redis