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

外部网站无法连接Synology NAS上的MariaDB数据库求助

排查步骤与解决方案

1. 确认Synology数据库服务状态

打开群晖DSM,进入控制面板 > 应用程序 > MariaDB/MySQL,确保服务处于运行中状态。若未启动,点击启动并设置「开机自动启动」。

2. 修正数据库连接参数

核对connection.php中的核心参数,Synology环境下有特殊注意点:

  • 主机地址:不要用localhost,改用群晖局域网IP(如192.168.1.100)或127.0.0.1(同NAS内网站),避免PHP走socket连接失败。
  • 端口号:默认MariaDB端口为3306,若自定义过端口需对应填写。
  • 账号密码:使用数据库授权账号(非DSM管理员账号),可在DSM的MariaDB面板创建专用用户并分配权限。

示例正确PDO连接代码:

try {
    $pdo = new PDO('mysql:host=192.168.1.100;port=3306;dbname=gd_server;charset=utf8mb4', 'gd_user', 'your_db_password');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}

3. 检查数据库用户访问权限

  • 在DSM的MariaDB管理界面(或phpMyAdmin),修改用户的主机权限:默认新用户仅允许localhost访问,需改为%(允许任意IP)或指定中转网站的IP(同NAS内则设为127.0.0.1)。
  • 确保该用户拥有目标GD数据库的SELECT、INSERT等必要操作权限。

4. 放行NAS防火墙端口

进入DSM控制面板 > 安全 > 防火墙,确认3306端口(或自定义数据库端口)已添加放行规则,允许中转网站所在IP访问;若中转网站在NAS自身,需确保本地回环访问不受限制。

5. 验证Web Station的PHP扩展

  • 打开DSMWeb Station > 脚本语言设置,确认当前使用的PHP版本已启用pdo_mysql(PDO模式)或mysqli(mysqli模式)扩展。
  • 可新建info.php(内容为<?php phpinfo(); ?>),访问后搜索pdo_mysql确认扩展已加载。

6. 处理prepare()调用错误

该错误是数据库连接失败导致$pdo为null引发的,解决上述连接问题后会自动消失。也可在代码中增加前置判断:

if (!$pdo) {
    die("Database connection not established");
}
$stmt = $pdo->prepare("SELECT ...");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:32:01