MySQL 允许远程用户访问数据库的方法与权限管理
通过 MySQL 客户端执行特定的授权命令,可允许指定 IP 或任意地址的用户远程登录并操作数据库。核心步骤包括使用 GRANT 语句分配权限并指定用户信息,随后执行 FLUSH PRIVILEGES 使更改即时生效。
授予远程访问权限
要让远程计算机能够连接到 MySQL 服务器,需要创建一个允许特定来源 IP 登录的用户,并赋予其相应的数据库操作权限。以下是一个典型的授权示例,该命令将允许来自 192.168.14.1 的主机以用户 cakephp 的身份访问 cakephp 数据库:
mysql> grant all privileges on cakephp.* to cakephp@'192.168.14.1' identified by 'lpfukia';
Query OK, 0 rows affected (0.01 sec)
上述命令的参数含义如下:
- all privileges:授予所有权限。在实际生产环境中,建议根据最小权限原则,仅授予
SELECT,INSERT,UPDATE等必要权限,而非全部权限。 - cakphp.*:指定授权的数据库范围。这里是指
cakephp数据库下的所有表(*)。 - cakephp@'192.168.14.1':指定用户名及允许的 Host。
'192.168.14.1'限制了仅该 IP 可以连接。若要允许任意 IP 访问,可将此处替换为'%',但存在安全隐患。 - identified by 'lpfukia':设置用户的登录密码。
刷新权限表
在 MySQL 中修改用户权限后,通常建议显式刷新权限表,以确保新设置的权限立即生效,无需重启服务。
mysql> flush privileges;
执行此命令后,系统将重新加载内存中的授权表。此时,位于 192.168.14.1 的主机即可使用新用户凭据远程连接数据库。
排查与建议
- 防火墙限制:即使数据库层面已授权,若服务器防火墙(如 iptables、firewalld)或云服务商的安全组未开放
3306端口,远程连接仍会失败。请确保网络层连通性。 - bind-address:检查
my.cnf配置文件中的bind-address参数。若设置为127.0.0.1,则 MySQL 仅监听本地连接。需将其修改为0.0.0.0或服务器的具体公网/内网 IP,并重启 MySQL 服务方可接受远程请求。
以上就是允许远程用户访问 MySQL 服务的详细内容,更多关于 MySQL 权限管理的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













