可通过修改MySQL默认端口并同步更新宝塔配置、防火墙规则及权限控制来增强安全性:一、面板界面或手动编辑my.cnf改端口;二、更新面板连接配置;三、放行新端口;四、验证连接并收紧用户权限。

如果您在宝塔面板中运行MySQL服务,但希望降低被暴力扫描或未授权访问的风险,则可通过修改MySQL默认端口(3306)并配合配置文件调整来增强数据库安全性。以下是具体操作步骤:
一、通过宝塔面板界面修改MySQL端口
该方法利用宝塔内置的数据库管理模块直接变更监听端口,无需手动编辑配置文件,适合不熟悉命令行操作的用户。修改后需重启MySQL服务使配置生效。
1、登录宝塔面板,在左侧菜单栏点击数据库,进入数据库管理页面。
2、在右上角点击设置按钮,选择MySQL配置选项卡。
3、在配置文件编辑区域中,定位到port=3306这一行,将数字3306替换为自定义端口号(如3307或4306),确保该端口未被其他程序占用且在服务器防火墙中放行。
4、点击保存按钮,随后在页面顶部弹出的提示中点击重启MySQL。
二、手动编辑MySQL配置文件修改端口
该方式直接修改MySQL主配置文件my.cnf,适用于需要精细控制参数或面板界面无法保存配置的情况。修改前需确认配置文件路径并备份原始文件。
1、通过宝塔面板左侧文件菜单,进入/www/server/mysql/目录(或根据实际安装路径查找my.cnf,常见位置还包括/etc/my.cnf或/etc/mysql/my.cnf)。
2、找到并编辑my.cnf文件,在[mysqld]段落下添加或修改port = 3307(请勿遗漏等号前后空格)。
3、检查同一段落中是否存在skip-networking或bind-address = 127.0.0.1等限制网络访问的配置;若需远程连接,请将bind-address改为0.0.0.0或指定IP,否则端口修改后仍无法从外部访问。
4、保存文件后,在终端中执行systemctl restart mysqld(CentOS 7+/Rocky/AlmaLinux)或service mysql restart(Ubuntu/Debian),验证服务是否正常启动。
三、同步更新宝塔面板数据库连接配置
宝塔面板自身依赖MySQL存储站点与用户数据,若仅修改MySQL端口而未更新面板内部连接参数,可能导致面板数据库功能异常甚至无法登录。此步骤必须执行。
1、在SSH中执行命令:sed -i "s/3306/3307/g" /www/server/panel/class/mysql.py(将3307替换为实际新端口)。
2、继续执行:sed -i "s/3306/3307/g" /www/server/panel/data/default.db,确保面板本地SQLite缓存中的MySQL连接信息同步更新。
3、重启宝塔面板服务:bt restart,等待面板完全加载后,检查数据库列表是否正常显示且可新建数据库。
四、配置服务器防火墙放行新端口
即使MySQL已监听新端口,若系统防火墙(如firewalld或ufw)未开放该端口,外部连接请求仍将被丢弃。必须显式添加规则允许入站流量。
1、对于使用firewalld的系统(CentOS/RHEL/AlmaLinux),执行:firewall-cmd --permanent --add-port=3307/tcp。
2、立即重载规则:firewall-cmd --reload。
3、对于使用ufw的系统(Ubuntu/Debian),执行:ufw allow 3307,随后运行:ufw reload。
4、使用netstat -tuln | grep :3307或ss -tuln | grep :3307确认MySQL进程确实在新端口监听。
五、验证远程连接及权限控制
端口修改完成后,需验证实际访问效果,并收紧数据库用户权限以规避因端口暴露带来的潜在风险。重点检查是否仍存在空密码用户或全网可访问账号。
1、在远程客户端(如Navicat、DBeaver或mysql命令行)中,将连接地址后的端口号由3306改为新端口(如3307),测试能否成功建立连接。
2、登录MySQL后执行:SELECT user,host,authentication_string FROM mysql.user;,核查是否存在host为%且无强密码的账户。
3、对非必要远程用户执行:DROP USER 'username'@'%';,或限制其host为特定IP:RENAME USER 'username'@'%' TO 'username'@'192.168.1.100';。
4、执行FLUSH PRIVILEGES;使权限变更即时生效。










