【MySQL】远程连接篇

开发过程中需要远程连接数据库,目前连接方式有两种,一种是用运维或者云平台提供的网页工具,另一种是远程终端命令或者远程连接工具,这里我们将远程终端命令和远程连接工具统一归类为远程连接,然后用远程工具来讲解如何连接。

开发环境:MacOS


连接工具

这里我们使用的是 Sequel Ace , 注意连接工具的选择要注意安全,有些工具可能被植入了木马病毒

image.png

如图,只需要输入 IP 用户名 密码 就可以连接进去,进去以后可以进行数据库和数据表的管理工作,这里不做详细介绍,本文只介绍远程连接

遇到的问题: 远程数据库可能限制了数据库只能被服务器本地或者特定的IP远程连接,这个时候我们点击 connect连接的时候就会报错拒绝连接,这个时候我们就需要添加远程登录的IP白名单

添加远程登录IP

1.首先登录到服务器上,使用root用户,进入My SQL数据库

2.查看用户列表:
SELECT user, host FROM mysql.user;

3.假设你要给用户user2添加远程登录权限,首先获取上一步远程连接报错的IP地址,或者自行查看user2的IP地址

4.查看user2的远程IP目录
SHOW GRANTS FOR 'user2'@'10.10.32.29';

5.给用户user2创建远程登录IP白名单
CREATE USER 'user2'@'10.10.32.29' IDENTIFIED BY '你的密码';

6.授权user2要访问的数据库
GRANT ALL PRIVILEGES ON 数据库名.* TO 'user2'@'10.10.32.29';

7.刷新权限
FLUSH PRIVILEGES;

8.检查授权结果
SHOW GRANTS FOR 'user2'@'10.10.32.29';

移除远程登录IP

1.先检查你要移除的用户和host是否存在
SELECT user, host FROM mysql.user WHERE user='user2';

2.删除指定IP的用户(这里只会删除IP记录,不会把整个用户删除)
假设要删除的用户是 user2@10.10.32.29
DROP USER 'user2'@'10.10.32.29';

3.刷新权限
FLUSH PRIVILEGES;

4.重复步骤1检查结果

添加远程IP和移除远程IP,本质上其实是建立了一个用户名 + IP的子用户

允许所有IP远程登录

注意:线上环境一般不建议全部放开限制

1.创建所有IP的允许用户, 假设你要给user2授权
CREATE USER 'user2'@'%' IDENTIFIED BY '你的密码';

这里的%代表所有IP允许

2.授权数据库
GRANT ALL PRIVILEGES ON 数据库名.* TO 'user2'@'%'; FLUSH PRIVILEGES;

3.刷新授权
FLUSH PRIVILEGES;

4.检查授权
SELECT user, host FROM mysql.user WHERE user='user2';

5.移除所有IP授权

删除用户
DROP USER 'user2'@'%';

刷新
FLUSH PRIVILEGES;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容