在拉勾教育大前端训练营的作业中需要使用 MySQL, 上篇文章分享了如果安装. 同学希望在自己本地来远程访问 MySQL 数据库.(实际工作不该这样做~), 不过我还是满足一下这个需要, 写一个操作流程.
知识点1: 虽然 MySQL 已起动, 开始监听 3306 端口. 但是整个服务器层面默认不允许外人访问这个端口.我们需要配置两个防火墙, 允许该端口的访问.
知识点2: 另外 MySQL 的管理员账号默认是不可以远程访问的.
「所以我们要做两件事: 」
1. 防火墙设置
- 外网防火墙 ( 通过服务器厂商提供页面设置 )
- 服务器内部防火墙服务配置 ( 通过服务器命令行 )
2. MySQL数据库服务器添加可以远程访问的用户
一.防火墙设置
1.1 登录 官网
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 连接信息
点击测试的效果