You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP连接AWS Lightsail MySQL数据库实例故障排查求助

AWS Lightsail MySQL 与 PHP 连接故障排查指南

一、先解决「Unknown database」核心报错

  • 打开Workbench,直接执行 SHOW DATABASES;,复制返回的数据库名称原封不动粘贴到PHP代码里——别手动输入,避免大小写、连字符、隐形空格这类低级错误(Lightsail MySQL对数据库名大小写严格区分,databasename-1和Databasename-1是两个完全不同的库)。
  • 检查PHP代码里数据库名的引号:别多打、少打引号,也别在引号前后加多余空格。

二、核对Lightsail数据库的访问权限

  • 确认Lightsail实例的内网IP在数据库的允许连接列表里:
    1. 登录Lightsail控制台,进入你的数据库管理页。
    2. 点「Connect」标签,看「Allowed connections」里有没有实例的私有IP(不是公网IP),没有的话直接添加。
  • 检查数据库用户的权限:在Workbench里执行
    SHOW GRANTS FOR '你的用户名'@'%';
    
    确保结果里有 GRANT ALL PRIVILEGES ON Databasename-1.* TO '你的用户名'@'%';(至少要有读写目标库的权限)。如果没有,执行授权语句:
    GRANT ALL PRIVILEGES ON `Databasename-1`.* TO '你的用户名'@'%';
    FLUSH PRIVILEGES;
    

三、检查PHP连接代码的细节

  • 用数据库的内网端点连接:Lightsail实例和同区域的数据库内网互通,内网端点在数据库控制台「Connect」标签里,别用公网端点,避免权限限制和网络问题。
  • 确认PHP的MySQL扩展已安装:在实例里建个phpinfo.php,内容写 <?php phpinfo(); ?>,访问这个页面看有没有mysqli或PDO_MySQL模块。没有的话按系统安装:
    • Ubuntu/Debian:sudo apt-get install php-mysql
    • CentOS/RHEL:sudo yum install php-mysqlnd
  • 打印完整错误信息:修改PHP代码,把错误详情打出来,别只看模糊的报错码:
    $conn = mysqli_connect('内网端点', '用户名', '密码', '数据库名');
    if (!$conn) {
        die('连接失败: ' . mysqli_connect_errno() . ' - ' . mysqli_connect_error());
    }
    

四、排查网络与防火墙

  • 检查Lightsail实例的出站防火墙:进入实例管理页的「Networking」标签,看「Firewall」的出站规则,确保允许3306端口(MySQL默认端口)的出站请求。
  • 测试实例到数据库的连通性:在实例终端执行 telnet 数据库内网端点 3306 或 nc -zv 数据库内网端点 3306,连不上的话说明网络不通,检查实例和数据库是否在同一区域/可用区,或者VPC配置是否有问题。

五、重载配置清除缓存

  • 重启Lightsail数据库:在数据库控制台「Connect」标签里找重启按钮,确保权限修改生效。
  • 重启PHP-FPM服务:如果开了OPcache缓存,重启服务清除缓存:
    • Ubuntu/Debian:sudo systemctl restart php-fpm
    • CentOS/RHEL:sudo systemctl restart php-fpm

内容的提问来源于stack exchange,提问作者turkeyhundt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:35:24