MySQL开放远程访问权限
2011-07-29 09:32 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)