我有一个较旧的 Synology 设备(DSM v5.2-5967 Update 4,phpmyadmin v4.4.7-0103),它有一些本地网站可以运行 php 页面。我想将它迁移到我的新 Synology 设备(DSM V6.1.3-15152 Update 1,phpmyadmin v4.6.6-0172)。从套件中心安装新版本的 phpmyadmin 时,我还需要下载 Maria DB 和 PHP 5.6,而这在 DSM 5 中不是必需的。此外,DSM 6 现在支持 Web Station 中的选项,我可以在其中配置http后端服务器和PHP版本。我将其设置为 5.6,即与 phpmyadmin 一起安装的那个。
这是旧 DSM 中曾经为我工作的代码:
<?php
define ("DB_HOST", "localhost"); // Your database host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>
此代码现在返回“无法建立连接”。其他不处理此问题的站点返回 500 服务器错误。我尝试用 Synology 设备的名称替换 localhost,但无济于事。 PHP 文件本身工作正常,但我无法连接到数据库。我在任何地方都看不到 Maria DB 的控制面板,所以我不知道我是否遗漏了任何设置。这是一个新设备,安装了全新的软件包,所以我什至还没有更改 root 密码。
我什至尝试从套件中心安装 Apache 2.4,并将其设置为新 Web Station 设置中的后端服务器,然后重新启动 NAS。但是 phpyadmin 仍然显示“nginx/1.11.10”作为网络服务器。作为引用,我的旧 NAS 在 web 服务器下显示 Apache,但我没有安装 Apache 包。
我不知所措。有没有人尝试过使用 Synology DSM 6 连接到 mysql 数据库并活着讲述这个故事?
最佳答案
我将 DSM6 与 DS716+ 一起使用,以下代码对我有用。导致连接问题的原因太多。如扩展未启用等,请在执行任何其他步骤之前使用 phpinfo() 进行验证。尝试使用 mysqli extension 而不是 mysql,附上示例代码给你:
<?php
$mysqli = new mysqli("localhost", "dbuser", "dbpassword", "dbname");
$query = "SHOW TABLES";
if ($result = $mysqli->query($query)) {
while ($row = $result->fetch_row()) {
printf("%s <br />\n", $row[0]);
}
$result->close();
}
$mysqli->close();
?>
关于php - 如何使用 Synology 从 php 页面连接到 mysql 服务器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45707274/