环境:
- Ubuntu 20.04
 - MySQL8.0
 
原因:mysql安装好后
- 默认监听3306端口,并且只允许localhost访问
 - 只允许root用户在localhost上登录
 
解决方案:
- ① 保障3306端口是开放的
 
sudo ufw allow 3306   # 打开3306号端口
sudo ufw status    # 查看端口状态,allow就是开放的。
sudo ufw disable   # 关闭防火墙
sudo ufw enable    # 开启防火墙 
- ② 允许其他IP访问
 
进入到 /etc/mysql/mysql.conf.d 目录    # 一般mysql默认会安装在这个目录下。如果不是,可以使用sudo find / -name "mysql.cnf"来查找文件。
修改mysqld.cnf文件
把bind-address从127.0.0.0改为0.0.0.0 
- ③ 允许root用户在其他IP上登录
 
# 使用root用户登录mysql数据库,进入到mysql数据库
mysql -u root -p            
# 切换到mysql数据库
use mysql;    
# 查看user表的host和user数据:会发现root用户允许的host是localhost
select host, user from user; 
# 修改数据:把user为root的host改为%,表示允许root用户在所有IP上登录
update user set host='%' where user='root';  
 
# 重启mysql:
/etc/init.d/mysql restart








