gpt4 book ai didi

php - 出现错误 SQLSTATE[HY000] [2002] NAS Synology 上的连接被拒绝

转载 作者:可可西里 更新时间:2023-11-01 00:39:58 25 4
gpt4 key购买 nike

我正在制作一个正在 build 中的页面,该页面托管在我的 Synology NAS 上。

访问者可以使用他们的电子邮件进行订阅,并在网站可用时得到通知。

我在使用数据库和将电子邮件添加到数据库的 PHP 代码时遇到问题。

如果服务器名称是 localhost,我会收到以下错误:

SQLSTATE[HY000] [2002] No such file or directory

当它是 127.0.0.1127.0.0.1:3306 时,我得到以下错误:

SQLSTATE[HY000] [2002] Connection refused

我还没有在 Stackoverflow 上找到解决方案。

这里是 PHP 代码:

<?php

$servername = "localhost";
$username = "id";
$password = "password";
$dbname = "dbname";

try {
$conn = new PDO( "mysql:host=$servername;dbname=$dbname", $username, $password );
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "INSERT INTO email ( email ) VALUES ( '$email' )";

$conn->exec( $sql );
echo "New record created successfully";
}

catch( PDOException $e )
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;

为什么会出现此错误?

最佳答案

我遇到了同样的问题:

SQLSTATE[HY000] [2002] Connection refused

当尝试从 php 连接到在我的 Synology NAS 上运行的 MariaDB 数据库时。仅提供用户名和密码

$conn = new PDO( "mysql:host=$servername;dbname=$dbname", $username, $password );

没有用,在指定端口号时,在别处找到的解决方案也没有用:

$conn = new PDO( "mysql:host=$servername;port=3307;dbname=$dbname", $username, $password );

什么对我有用:

$conn = new PDO("mysql:host=$servername:3307;dbname=$database", $login, $password);

从 Synology NAS 上的主菜单打开 MariaDB 10 属性窗口时可以找到端口名称。显然,port=3307 规范没有任何作用,但也没有给出错误消息。

关于php - 出现错误 SQLSTATE[HY000] [2002] NAS Synology 上的连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45254222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com