phpMyAdmin连接服务器异常 域名连数据库无报错问题求助
phpMyAdmin域名连接数据库故障排查方案
已确认故障现象
- PHP脚本连接数据库时,
serverdbname参数取值为localhost可正常连通 - 将
serverdbname变量值设置为webname.com域名时连接失败,连接过程无任何错误提示 - 经初步排查,故障源自phpMyAdmin配置问题,暂未定位到具体错误项
针对性排查步骤
1. 校验MySQL账号访问权限
MySQL账号权限与访问来源强绑定,
账号@localhost和账号@webname.com属于两个独立的授权主体,权限不互通
- 登录MySQL命令行,执行以下语句查询现有授权:
SELECT user,host FROM mysql.user WHERE user='你使用的数据库账号';
- 若查询结果中无该账号对应
webname.com或通配来源%的授权记录,执行授权语句并刷新权限即可修复:
GRANT ALL PRIVILEGES ON 目标库名.* TO '数据库账号'@'webname.com' IDENTIFIED BY '对应账号密码'; FLUSH PRIVILEGES;
2. 修正phpMyAdmin配置项
- 打开phpMyAdmin根目录下的
config.inc.php配置文件:如果数据库和phpMyAdmin部署在同一台服务器,$cfg['Servers'][$i]['host']参数直接填127.0.0.1或localhost即可,填写域名会强制走TCP远程连接链路,容易触发网络、防火墙拦截导致无提示连接失败 - 开启配置文件内的错误显示开关,捕获隐藏报错:
$cfg['Error_Handler']['display'] = true; $cfg['Servers'][$i]['connect_type'] = 'tcp'; // 若使用localhost连接,可将connect_type改为'socket',走本地socket链路减少连接问题
3. 校验域名链路连通性
- 在部署phpMyAdmin的服务器上执行端口连通性测试,确认域名对应IP的3306端口可正常访问:
telnet webname.com 3306
- 若端口不通,依次检查服务器本地防火墙、云平台安全组是否放开3306端口规则,同时核对MySQL配置文件
my.cnf,确认没有设置bind-address=127.0.0.1的强制本地绑定限制。
相关现象及配置可参考对应留存的3张故障配置截图。
内容的提问来源于stack exchange,提问作者IGN
相关产品推荐
相关产品推荐

