需配置数据库用户权限、修改MySQL绑定地址、放行防火墙端口并限制IP白名单,最后验证远程连接。具体包括:创建指定IP访问用户、将bind-address设为0.0.0.0、在宝塔安全页添加3306端口及IP白名单、客户端用mysql -h测试连接。

如果您在宝塔面板中部署了MySQL或MariaDB数据库,但希望允许外部网络中的特定客户端通过IP地址连接数据库,则需手动配置数据库用户权限与防火墙规则。以下是实现该目标的具体步骤:
一、创建具备远程访问权限的数据库用户
默认情况下,宝塔创建的数据库用户仅允许本地(localhost)连接。需新建一个用户并显式授权其从指定IP地址访问数据库。
1、登录宝塔面板,进入【数据库】页面。
2、点击右侧【phpMyAdmin】按钮,进入数据库管理界面。
3、在顶部导航栏选择【用户】选项卡,点击【+添加用户】。
4、在【主机】字段中输入具体允许连接的IP地址(如192.168.1.100)或IP段(如192.168.1.%),不可填写%(表示任意IP)以保障安全。
5、设置用户名、密码及所选数据库权限,勾选【仅当前数据库】或按需分配权限,点击【执行】保存。
二、修改MySQL配置文件启用远程监听
MySQL默认绑定127.0.0.1,仅响应本地请求。需将其改为监听所有接口或指定网卡IP,才能接收外部连接请求。
1、在宝塔面板中进入【文件】,打开路径:/www/server/mysql/etc/my.cnf。
2、查找bind-address配置项,将其值修改为0.0.0.0(监听全部IPv4地址)或服务器实际外网IP(如192.168.10.5)。
3、确认文件中不存在skip-networking行;若存在,需删除或注释该行。
4、保存文件后,在【数据库】页面点击对应MySQL服务右侧的【重启】按钮。
三、在宝塔防火墙中放行数据库端口并限制源IP
即使数据库已启用远程监听,宝塔内置防火墙或系统iptables仍会拦截外部连接。需精确开放端口并约束访问来源。
1、进入宝塔面板【安全】页面,确保【MySQL(3306)】端口已在放行列表中。
2、点击该端口条目右侧【设置】,在弹出窗口中勾选【IP白名单】。
3、在白名单输入框中逐行填入允许连接的单一IP地址(如203.0.113.25)或CIDR格式网段(如203.0.113.0/24),每行一个,不可留空行。
4、点击【提交】保存规则,防火墙将自动应用新策略。
四、验证远程连接是否生效
完成上述配置后,需从被授权的客户端机器发起实际连接测试,确认权限与网络通路均正常。
1、在客户端终端执行命令:mysql -h 服务器公网IP -u 用户名 -p。
2、输入对应密码,若成功进入MySQL命令行界面,说明远程连接已建立。
3、执行SELECT USER(), CURRENT_USER();,确认返回的主机部分与预设IP一致,验证权限绑定正确。
4、尝试从非白名单IP执行相同命令,应返回Access denied for user错误。










