Windows MySQL 33060 端口无法关闭:如何正确解决?

上周有客户问我如何在Windows系统中关闭MySQL的3 3 06 0端口。
其实这个操作并不难,但是有几个细节必须要注意。
首先必须明确的是,MySQL 8 .0及以上版本默认启用了XPotocol协议,并且该协议使用端口3 3 06 0。
如果不想使用该协议,则必须手动将其关闭。

第一步是显示文件类型。
在文件资源管理器中,单击顶部菜单上的“查看”,然后选中“文件扩展名”。
这样就可以看到配置文件的实际名称是my.ini.txt。

第二步是找到MySQL的安装文件夹,通常在C:\ProgramData\MySQL\MySQL Server 8 .0。
然后找到my.ini.txt,右键单击,选择“重命名”,将文件扩展名由.txt更改为.ini,使其成为my.ini。

第三步,用记事本或Notepad++打开my.ini文件,在[mysqld]部分下添加一行:mysqlx=0。
请记住保存文件。

第四步,重启MySQL服务。
可以通过服务管理器重启,或者在命令行输入net stop MySQL8 0 && net start MySQL8 0。

第五步,检查闸门是否关闭。
类型 netstat -ano |在提示符中找到str 3 3 06 0。
如果没有出口,则说明门已关闭。

如果按照这些步骤还是不行,可能是配置文件路径错误,或者权限问题,或者参数拼写错误。
您可以从这几个方面进行检查。

如果还有问题,尝试通过命令行暂时启动MySQL,并添加参数mysqld --mysqlx=0 --console,这样当前会话有效,但重启后又会恢复。

最后,出于安全考虑,如果不需要MySQLShell或XPlugin功能,最好关闭这个协议,更改默认端口,禁用匿名账户,限制使用root账户远程登录,这样比较安全。
如果问题仍然存在,请查看 MySQL 日志文件,该文件通常是数据目录中的 .err 文件。
无论如何,这取决于你,我希望这些可以帮助你。

在本地测试php用的服务器端口是53306,上传上去之后要改成3306?

3 3 06 是MySQL默认端口,不需要更改。
当代码连接数据库时使用3 3 06 即可。

mysql 连接错误Can't connect to MySQL server on IP(10060)(下面详细)

3 3 06 端口是否正常?使用telnet连接到IP:3 3 06 如果这不起作用,请测试服务器连接。
指导正确吗?防火墙关闭了吗? MySQL服务是否开放?版本相同吗?日志中没有索赔?如果这不起作用,请寻找其他方法。