写给前端er的「远程连接 MySQL 数据库」

1,106 阅读2分钟

在拉勾教育大前端训练营的作业中需要使用 MySQL, 上篇文章分享了如果安装. 同学希望在自己本地来远程访问 MySQL 数据库.(实际工作不该这样做~), 不过我还是满足一下这个需要, 写一个操作流程.

知识点1: 虽然 MySQL 已起动, 开始监听 3306 端口. 但是整个服务器层面默认不允许外人访问这个端口.我们需要配置两个防火墙, 允许该端口的访问.

知识点2: 另外 MySQL 的管理员账号默认是不可以远程访问的.

「所以我们要做两件事: 」

1. 防火墙设置

  • 外网防火墙 ( 通过服务器厂商提供页面设置 )
  • 服务器内部防火墙服务配置 ( 通过服务器命令行 )

2. MySQL数据库服务器添加可以远程访问的用户

一.防火墙设置

1.1 登录 官网 

passport.ucloud.cn/#login

1.2 新建防火墙规则组

1.3 通过复制新建规则组

1.4 编辑新防火墙规则组

1.5 添加具体新规则

前端项目喜欢用 3000 端口, 要用哪个端口就仿照这个操作即可

1.6 服务器设置新规则组

2.1 服务器内部防火墙设置

# 下面指令可无脑依次执行

# 1.查看防火墙状态
systemctl status firewalld.service

# 2.开启防火墙
systemctl start  firewalld.service

# 3.开放3306端口
firewall-cmd  --zone=public  --add-port=3306/tcp  --permanent

# 4.重启防火墙使新设置生效
firewall-cmd  --reload

# 5.查看已经打开放的端口
firewall-cmd  --list-ports

如果只是练习, 可以直接把内部防火墙关掉

systemctl stop  firewalld.service   # 关闭内部防火墙

如图:

二.添加远程访问用户

1. 登录服务器上MySQL数据库, 添加可以远程访问的用户

-- 复制时要有分号
grant all privileges on *.* to 'shui'@'%' identified by 'lagou12345678';
flush privileges;

2. 通过 Navicat 测试

以后代码中可以使用新用户的账号密码了

3. 如果要收回权限, 删除用户

-- 复制时要有分号
revoke all privileges ont *.* from 'shui'@'%';  -- 收回权限
drop user 'shui'@'%';  -- 删除用户
flush privileges; -- 刷新权限

三.Navicat 以 ssh 方式远程连接数据库

1. 选择类型

2. 配置 SSH

3. 配置 MySQL 连接信息

点击测试的效果