【发布时间】:2018-01-24 05:25:05
【问题描述】:
我有一台旧的 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 服务器错误。我尝试将 localhost 替换为 Synology 设备的名称,但无济于事。 PHP 文件本身工作正常,但我无法连接到数据库。我在任何地方都看不到 Maria DB 的控制面板,所以我不知道我是否缺少任何设置。这是一台新设备,安装了全新的软件包,所以我什至还没有更改 root 密码。
我什至尝试从 Package Center 安装 Apache 2.4,并在新的 Web Station 设置中将其设置为后端服务器,然后重新启动 NAS。但 phpyadmin 仍将“nginx/1.11.10”显示为 Web 服务器。作为参考,我的旧 NAS 在 web server 下显示 Apache,但我没有安装 Apache 包。
我很茫然。有没有人尝试过使用 Synology DSM 6 连接到 mysql 数据库并活到现在?
【问题讨论】:
-
警告:您使用的 an obsolete database API 已从最新版本的 PHP 中删除。你应该使用modern replacement。
-
虽然您不应该真正使用 mysql_* 函数,正如其他人所指出的,但您至少应该在失败时暂时打印出
mysql_error()的值:这将是来自的实际错误消息连接失败,并可能对正在发生的事情有所了解。 (另外,phpMyAdmin 可以工作吗?如果可以,您使用什么用户名、主机和密码进行连接?服务器详细信息应该在 phpMyAdmin 主屏幕右上角的“数据库服务器”框中...) -
谢谢,我很抱歉不知道 mysql_* 函数已被弃用。我能够连接到 mysql 数据库,但看起来 php 在端口 3306 上,而 mysql 在 3307 上。因此,我必须使用“localhost:3307”作为 DB_HOST 而不是普通的旧“localhost”。如何强制 mysql 移动到 3306,或 PHP 移动到 3307?
标签: php mysql mariadb synology