我有一个较旧的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)。从Package Center安装新版本的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密码。
我甚至尝试从Package Center安装Apache 2.4,并将其设置为新Web Station设置中的后端服务器,然后重新启动NAS。但phpyadmin仍然显示“nginx / 1.11.10”作为Web服务器。作为参考,我的旧NAS在Web服务器下显示Apache,但我没有安装Apache软件包。
我很茫然。有没有人试图使用Synology DSM 6连接到一个mysql数据库并活着讲述这个故事?
答案 0 :(得分:2)
我正在使用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();
?>
PS:请留下评论给谁一个downvote
答案 1 :(得分:1)
mysql-server正在运行?命令行上的color:yourColor
或#service mysql status
。您还可以使用#mysql
或#mysql -u USERNAME -p
来检查登录信息。见mysql man
答案 2 :(得分:1)
你需要添加一个端口。
我使用PDO
,但您可以使用mysql_connect
try
{
$pdo = new PDO("mysql:host=servernameport=3307;dbname=database", "username", "password");
}
catch(PDOException $e)
{
echo $e->getMessage();
}
return $pdo;
要找出您需要的端口,请转到maria db
如果我正确,那么在您安装phpmyadmin
答案 3 :(得分:0)
我和你有同样的问题。我通过以下主机参数解决了该问题:
主机:127.0.0.1:3307
我正在安装一个Wordpress网站,该网站是从Duplicator Pro PlugIn导入的,它对我有用。