win7打开3306端口怎么设置,3306 端口 默认 服务 MySQL

题图来自Unsplash,基于CC0协议
导读
以下是如何进行设置的步骤:(假设您的MySQL服务已安装并正在运行)
注意: MySQL默认监听所有网络接口,但防火墙或MySQL自身的bind-address设置可能限制了访问源IP。本文主要解决防火墙和MySQL服务层面的权限问题。
首先是确保MySQL服务配置允许3306连接:
- 找到my.ini文件: MySQL的配置文件通常是
my.ini,可以在MySQL的安装目录下找到,比如:C:Program FilesMySQLMySQL Server <版本号>- 或者老一点的路径
C:mysqlin的同级目录。如果找不到名为my.ini的文件,可能是一个配置错误或者使用了不同的安装方式,请查阅您的MySQL文档或尝试搜索本机上的my.ini。
- 编辑my.ini: 用文本编辑器(如记事本或Notepad++)打开
my.ini文件。寻找类似下面的配置行:#bind-address = 127.0.0.1 // 这行前面有#号注释掉了,默认只允许本地连接- 如果这行是注释掉的 (# 开头),并且你想允许来自其他计算机的连接,你需要将其改为如下形式(取消注释,去掉#):
bind-address = 0.0.0.0 // (允许所有IP连接,相对不安全,确保有防火墙或安全组保护)或者,更常见的做法是只允许局域网内或特定IP访问,保持为
127.0.0.1或修改为192.168.x.x(如果是你的电脑IP)来限制。 - 保持
127.0.0.1只允许本地连接。 - 修改后保存并关闭文件。
- 如果这行是注释掉的 (# 开头),并且你想允许来自其他计算机的连接,你需要将其改为如下形式(取消注释,去掉#):
- 重启MySQL服务: 打开“服务”管理器:
- 按
Win + R键,输入services.msc,按回车。 - 找到名为
MySQL<版本号> Server或类似名称的服务。 - 右键点击它,选择“重新启动”。
- 确保重启成功。你也可以找到并修改其启动类型为“自动”,然后重启计算机。
- 按
接下来是配置Windows防火墙,允许外部访问3306端口:
注意:您需要以管理员身份操作Windows防火墙设置或者使用管理员权限的命令提示符。
方法一:通过Windows防火墙设置
- 打开Windows防火墙设置:
- 在Windows搜索栏输入“防火墙”,然后点击“Windows Defender 防火墙”。
- 进入高级设置(仅限Windows 7 SP1且安装了更新的系统,更早版本可能没有):
- 在左侧导航栏,点击“高级设置”。
- 创建入站规则:
- 在新窗口中,左侧选择“入站规则”。
- 在右侧“操作”部分,点击“新建规则”。
- 配置规则:
- 规则类型: 选择“端口”并点击“下一步”。
- 协议类型: 选择“TCP”,然后点击“下一步”。(如果不确定,默认是TCP,除非你确定是UDP服务,但MySQL是TCP)
- 特定本地端口: 输入
3306,然后点击“下一步”。 - 操作: 选择“允许连接”,点击“下一步”。
- 配置文件: 通常选择“域”、“专用”和“公用”三个都打上勾,除非你非常确定只需要在特定网络环境下开放。这里选择一般会开所有环境。
- 名字: 输入一个易于识别的名称,比如“允许MySQL 3306端口”,然后点击“完成”。
- 创建出站规则(如果有必要): 如果是远程服务器连接你本地的MySQL,则通常只需要入站规则。如果你是本地连接,可能需要匹配与此规则相应的出站规则。
- 在“出站规则”部分,同样使用“新建规则”。
- 规则类型: 选择“端口”。
- 协议类型: 选择“TCP”。
- 特定本地端口: 同样输入
3306。 - 操作: 选择“允许连接”。
- 配置文件: 通常选择所有。
- 名字: 如“允许到MySQL 3306端口”。
方法二:通过命令提示符(管理员)创建入站规则
这个方法更适用于需要精细化控制的场景。同前,需要管理员权限。
- 以管理员身份打开命令提示符:
- 在Windows搜索栏输入
cmd。 - 右键点击“命令提示符”,选择“以管理员身份运行”。
- 在Windows搜索栏输入
- 新建入站规则:
- 输入以下命令(
new和inbound要写全,后面%port%处填入您的端口号,例如3306):netsh advfirewall firewall new rule name="允许3306入站" dir=in protocol=tcp localport=%port% action=allow - 按下回车,系统会提示规则创建是否重叠,并显示规则摘要。
- 再次输入一条允许的出站规则命令:
netsh advfirewall firewall new rule name="允许3306出站" dir=out protocol=tcp localport=%port% action=allow - 回车执行。
- 输入以下命令(
配置完成后,验证端口是否开放:
你可以使用以下方法检查:
- 本地验证: 在MySQL客户端工具(如MySQL命令行客户端、phpMyAdmin等),尝试连接本机的3306端口(例如
mysql -h 127.0.0.1 -P 3306 -u 用户名 -p,或者如果本机MySQL bind-address设置为0.0.0.0,也可以用另一个IP地址或192.168.1.xxx来连接测试一下多台电脑)。 - 使用网络工具:
- Telnet (如果安装了Telnet客户端): 打开命令提示符,输入
telnet 你的计算机IP地址 3306,按回车。如果连接成功,会看到空白屏幕或乱码,这是正常的。如果连接失败,可能是因为防火墙未开放,或者端口未监听。 - PowerShell/命令提示符: 打开PowerShell或者命令提示符(管理员或普通权限都可以),输入以下命令,通配符的地方替换为你的端口号,如
netstat -ano | findstr :3306。如果看到LISTENING状态的条目,说明端口正在监听。netstat -ano | findstr :3306 // 替换3306为你的端口 - 其他第三方端口扫描工具: 如Advanced Port Scanner。
- Telnet (如果安装了Telnet客户端): 打开命令提示符,输入
请注意: 方法二(命令行)可能在某些情况下要求不同,以上命令主要适用于Windows 7 SP1后的一些版本。如果遇到问题,可以考虑先通过图形界面设置方法一。
完成以上步骤后,应该就成功在Windows 7系统中开放了3306端口,允许连接MySQL数据库服务了。记得如果不需要远程访问,建议在my.ini中再次确认bind-address的设置是安全的(比如只绑定本地环回或特定内网IP),避免未授权访问。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com