一、MySQL
MySQL远程连接不上
原因一:防火墙没开放
查询防火墙状态: 下图是dead状态
启动防火墙:systemctl start firewalld
再次查询防火墙状态: systemctl status firewalld
添加需要开放的端口: firewall-cmd --add-port=9090/tcp --permanent
查询防火墙开放端口列表:firewall-cmd --zone=public --list-ports
最后别忘了关闭防火墙:systemctl stop firewalld
原因二 没有'root'@'%'用户
进入docker-mysql: docker exec -it mysql /bin/bash
msyql -u root -p
注意:以下的";"均不要省略
选择mysql数据库:use mysql;
查看相关数据:select user,host,plugin from user;
如果没有'root'@'%'用户,请创建并修改host、plugin等字段
原因三:root用户没有权限
此时的表现为你能连上数据库,但是无法创建数据库
进入docker-mysql步骤同上
docker exec -it mysql /bin/bash
msyql -u root -p
use mysql;
查看root用户权限: show grants for 'root'@'%';
此时是什么权限的,需要给它赋权: GRANT ALL PRIVILEGES ON . TO 'root'@'%';
刷新权限:FLUSH PRIVILEGES;
再次查询root权限:show grants for 'root'@'%';