在本地虚拟机搭建了 mysql 后,尝试用 Navicat 远程连接数据库。但提示:

  

查了资料,可能有以下三个原因:

  • 使用的端口是否正确
  • 防火墙没有开放对应端口
  • 数据库没有给当前 IP 远程访问权限

 

一、使用的端口是否正确


由于用的是mysql,监听的是 3306 端口

netstat -ntpl

  

 

二、防火墙没有开放对应端口


2.1 查看是否有开放对应端口

firewall-cmd --list-ports

1.2 若未开放,则开放对应端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
# zone 作用域
# 3306/tcp  要开放端口
# permanent 永久开放 若没有这个参数,则防火墙重启后失效
 
# 重新加载生效
firewall-cmd --reload

1.3 检查是否成功开放

  

可以看到 3306端口 已经成功开放

 

三、没有授予当前 IP 远程访问权限


# 1.先进入mysql数据库
use mysql;

# 2.在user表中创建账号
create user 'root'@'%' identified by 'pwd';

# 3.修改密码(可忽略)

//ALTER USER 'root'@'10.150.32.100' IDENTIFIED WITH mysql_native_password BY 'root.123';

# 4.给创建好的账号赋予远程权限

grant all privileges on *.* to 'root'@'10.150.32.100' with grant option;

# 5.刷新数据库

FLUSH PRIVILEGES;

# 6.查看数据库中的用户权限表

select User,authentication_string,Host from user;

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐