代码改变世界

MySQL开放远程访问权限

  AnyKoro  阅读(3028)  评论(0编辑  收藏  举报

创建MySQL权限

您需要在被监控的MySQL服务器上创建一个专用的用于远程访问的MySQL用户,这样做的好处是:

  • 与您的其它MySQL用户进行有效隔离,独立管理。
  • 对该用户进行受限管理,不需要给予任何MySQL权限。
  • 指定特定的访问IP地址,阻止其它非法访问。

操作非常简单,在MySQL中操作如下:

CREATE USER "username"@"xxx.xxx.xxx.xxx" IDENTIFIED BY "your_password";
在以上操作中,我们创建的MySQL用户名为“username”,密码为“your_password”,建议您对其进行修改。
同时,目前指定的授权IP地址为:xxx.xxx.xxx.xxx。
此时该MySQL用户是没有足够权限读写的。
如果我们需要对该MySQL账户授予特定权限。
使用grant命令对数据库权限进行分配
    格式:grant 权限 on 数据库名.表名 to 用户名@登录主机 identified by "用户密码";
example:grant select,update,insert,delete on *.* to root@192.168.1.12 identified by "password";
                grant all privileges  on *.* to root@"%" identified by "root";
    最后要运行 flush  privileges;
    ok都搞定了。

防火墙安全配置

尽管以上的MySQL配置已经相当安全,您仍然可以通过防火墙来保护您的MySQL服务器,以Linux的iptables为例,您可以仅开放监控宝指定IP地址来访问MySQL服务器的端口。

iptables操作如下:

iptables -A INPUT -i eth0 -p tcp -s xxx.xxx.xxx.xxx --dport 3306 -j ACCEPT

注意:在MySQL或者防火墙中指定授权IP地址的时候,请只开放我们指定的IP地址,而不要直接开放整个C类网段,比如xxx.xxx.xxx.0/24,因为该网段中其它服务器不一定是我们可以控制的。

测试是否成功

创建一个 testmysql.php 文件,其内容如下:

<?php
 
        $mysqlHost="";//mysql的服务器地址
 
        $mysqlUser="";//mysql的用户名
 
        $mysqlPassword="";//mysql的用户密码
 
        $mysqlDb="";//mysql指定访问数据库
 
        $mysqlReShow = "show";
        $mysqlRe = "MYSQL连接测试结果:";
        $mysqlRe .= (false !== @mysql_connect($mysqlHost, $mysqlUser, $mysqlPassword))?"MYSQL服务器连接正常, ":
        "MYSQL服务器连接失败, ";
        $mysqlRe .= "数据库 <b>".$mysqlDb."</b> ";
        $mysqlRe .= (false != @mysql_select_db($mysqlDb))?"连接正常":"连接失败";
 
        echo "$mysqlRe";
?>

注:如果连接不上,就先查查3306端口有没有开放。telnet ip port

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示