上线的 MySQL 数据库,我们为了保证安全性,往往会关闭 MySQL 远程连接,只允许在本地操作数据库,而当我们开发时,又希望允许 MySQL 数据库的远程连接,这样我们在本地开开发时,就可以非常方便的直接操作服务器端的 MySQL 数据库。本文就介绍下如何关闭 / 允许 MySQL 数据库远程连接。
一、MySQL 数据库中 Host 的解释
在介绍如何关闭 / 允许 MySQL 数据库远程连接前,先介绍下 mysql 数据库中 user 表里的 host 字段,这个字段是控制允许连接 MySQL 数据库的用户的 IP 的,一般来说,我们有以下几种常用设置:
- 192.168.1.1:直接限制固定 IP,那么只有这个 IP 能通过这个用户连接 MySQL 数据库;
- %:% 是一个通配符,例如 192.168.1.% 就是所有以 192.168.1 开头的 IP 段都可以连接,更简单的 % 就表示所有人都可以连接;
- localhost:这个就是表示只有本地能通过这个用户连接 MySQL 数据库。
二、关闭 / 允许 MySQL 数据库远程连接
首先登陆在 Linux 上连接上 MySQL 数据库:
mysql -uroot -p
root 就是你要登陆的用户的用户名,之后需要你输入密码,没有问题后就连上 MySQL 数据库了。
切换到 mysql 数据库:
use mysql;
可以查看 user 表的所有记录:
select user, host from user;
关闭 MySQL 远程连接,只需要把 root 用户的 host 改成 localhost 即可(只能本地访问):
update user set host='localhost' where user='root';
允许 MySQL 远程连接,只需要把 root 用户的 host 改成 % 即可(任何人都可以访问)
update user set host='%' where user='root';
之后刷新 MySQL 权限相关表:
flush privileges;
如果没效果的话,就重启 MySQL 服务:
service mysql restart
一个示例过程的截图: