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

IONOS托管部署薪资系统后MySQL连接报No such file or directory错误

报错根本原因

你遇到的No such file or directory不是站点文件缺失,是PHP的mysqli扩展默认尝试通过Unix Socket连接数据库时,找不到对应Socket文件导致的。本地XAMPP环境web和MySQL部署在同一台机器,Socket路径配置匹配所以能正常运行,IONOS的数据库是独立的远程实例,连接逻辑和本地存在差异。

分步排查解决方法
  • 显式指定端口强制走TCP连接
    写主机地址时如果没有指定端口,mysqli遇到localhost会默认优先走Socket连接,哪怕你填的是远程主机地址也会触发该逻辑。调整连接代码,显式传入3306端口参数:
    <?php
      $host_name = 'db5005797255.hosting-data.io';
      $database = 'dbs4868780';
      $user_name = '你的IONOS数据库实际用户名';
      $password = '你的IONOS数据库实际密码';
      $db_port = 3306;
    
      $link = new mysqli($host_name, $user_name, $password, $database, $db_port);
      if ($link->connect_error) {
        die('<p>Failed to connect to MySQL: '. $link->connect_error .'</p>');
      } else {
        echo '<p>Connection to MySQL server successfully established.</p>';
      }
    ?>
    
  • 验证数据库权限和账号信息
    登录IONOS后台的数据库管理页面,确认两点:1. 你使用的数据库账号已经绑定了当前web服务器的访问IP,没有被限制仅本地访问;2. 账号名、密码完全和后台给出的一致,注意大小写敏感。
  • 修正mysqli默认Socket配置
    如果加端口后还是报错,新建phpinfo.php文件写入以下代码上传到站点根目录:
    <?php phpinfo(); ?>
    
    访问该文件搜索mysqli.default_socket配置项,如果值指向的路径不存在,可在连接代码前手动设置正确的Socket路径,IONOS环境默认Socket路径一般为/tmp/mysql.sock:
    <?php
      ini_set('mysqli.default_socket', '/tmp/mysql.sock');
      // 后续写数据库连接逻辑
    ?>
    
  • 交叉验证连接方式
    可以改用PDO方式连接数据库,排除mysqli扩展本身的配置问题,PDO也是PHP官方更推荐的数据库操作方案:
    <?php
    try {
        $pdo = new PDO('mysql:host=db5005797255.hosting-data.io;dbname=dbs4868780;port=3306;charset=utf8mb4', '你的数据库用户名', '你的数据库密码');
        echo "数据库连接成功";
    } catch(PDOException $e) {
        echo "连接错误: " . $e->getMessage();
    }
    ?>
    
  • 确认端口连通性
    以上步骤都无效的情况下,可联系IONOS技术支持确认你的web服务器到数据库主机db5005797255.hosting-data.io的3306出站端口没有被防火墙拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:15:05