PHP远程连接cPanel数据库失败:本地无法访问线上网站数据库
解决cPanel主机数据库本地远程连接问题
嘿,你猜的完全没错!$conf['dbhost']的设置确实是导致你无法本地连接的核心问题之一,结合cPanel主机的特性,我给你梳理几个必须搞定的关键点:
替换正确的数据库主机地址
cPanel上的MySQL数据库,远程连接时不能直接用域名(除非你特意做了DNS解析指向数据库服务器IP),正确的做法是使用服务器的公网IP地址,如果你的MySQL端口不是默认的3306,还要加上端口号。比如:$conf['dbhost']='123.45.67.89:3306'; // 替换成你的服务器公网IP你可以在cPanel的主页或者服务器信息里找到这个IP,也可以通过ping你的域名获取(注意如果域名挂了CDN,ping出来的是CDN节点IP,得找真实服务器IP)。
必须给数据库用户开启远程访问权限
cPanel默认禁止远程IP访问数据库,你得手动授权:- 登录你的cPanel面板
- 找到「MySQL Databases」工具
- 滚动到「Remote MySQL」板块
- 输入你的本地公网IP(可以搜索“我的IP”获取),点击「Add Host」;如果只是临时测试,也可以输入
%允许所有IP访问(但测试完一定要改回来,避免安全风险)
检查防火墙和端口开放情况
- 服务器端:cPanel自带的防火墙(比如CSF)需要开放3306端口,允许你的本地IP访问;如果是云服务器,还要在云服务商的安全组里开放3306端口。
- 本地端:确保你的电脑防火墙没有拦截向外的3306端口请求。
先测试连接再改代码
你可以先用MySQL客户端(比如MySQL Workbench、Navicat)或者命令行工具测试连接,确认参数正确:mysql -u admin_root -p -h 123.45.67.89如果这个命令能成功登录,再把相同的主机地址放到你的PHP配置里,就没问题了。
内容的提问来源于stack exchange,提问作者Muh
相关产品推荐
相关产品推荐

