php - Mysqli_connect(): (HY000/2002): 在 SYNOLOGY NAS 上建立网站时连接被拒绝
问题描述
我将一个小型服务站点从 AlterVista 门户转移到我的 NAS Synology,运行良好的相同代码现在不再在我的 NAS 上运行。从连接错误到 MariaDB。我已经阅读了有关此问题的论坛,但这是另一个系统(不是 pc,而是具有自己的应用程序的 nas)。我正在使用端口 3307,因为 mariadb10 正在侦听该端口。(当 mariadb 5 监听 3306 端口时也可以查看)
在 NAS 上,我已经安装了 MariaDB、PHP、PHP admin(可以很好地连接到 mariadb)、Apache HTTP Server 2.2,以及所有需要安装 PHP 5,7 的驱动程序和选项(mysqli、pdo 驱动程序和其他选项) )。
<?php
error_reporting(E_ALL);
$USERNAME = "root";
$PASSWORD = "xxxxxxx"; //null
$DBSERVER = "127.0.0.1:3307"; //127.0.0.1:3306 mariadb5
$DBNAME = "miodb";
if(!($db_connection = new mysqli($DBSERVER, $USERNAME, $PASSWORD, $DBNAME)))
die('Connect Error (' . $db_connection->connect_errno . ') '. $db_connection->connect_error);
if(!($db_selection = $db_connection->select_db($DBNAME)))
die ("Errore nella selezione del DB.");
$query = $db_connection->query("SELECT * FROM MATERIALE");
while($cicle=$query->fetch_array(MYSQLI_ASSOC)){
$url=$cicle['FOTO'];
echo "<tr>
<td>".$cicle['CODICEARTICOLO']."</td>
<td><img src='".$url."' width='50' height='50' /> </td>
<td>".$cicle['DESCRIZIONE']."</td>
<td>".$cicle['PREZZO']." Euro</td>
</tr>";
}
$query->close();
$db_connection->close();
?>
警告:mysqli::__construct(): (HY000/2002): Connection denied in >/volume1/web/listino.php on line 111 警告: mysqli::select_db(): Couldn't fetch mysqli >in /volume1/web /listino.php 第 114 行 Errore nella selezione del DB。
解决方案
我在图形控制台 Synology Nas 中进行了修改:
on(PHP 核心设置端口 3307 而不是 3306)。
在 PHP 代码端口 3307 值。
在 3307 上的 TCP/IP 端口设置上启用 maria db10 标志(默认)
<?php error_reporting(E_ALL); $USERNAME = "root"; $PASSWORD = "password"; //null X $DBSERVER = "127.0.0.1"; //127.0.0.1:3306 $DBNAME = "miodb"; $DB_PORT = '3307'; $SOCKET = "/run/mysqld/mysqld10.sock"; //not necessary $db_connection = new mysqli($DBSERVER, $USERNAME, $PASSWORD, $DBNAME, $DB_PORT); $query = $db_connection->query("SELECT * FROM MATERIALE"); while ($cicle = $query->fetch_array(MYSQLI_ASSOC)) { $url = $cicle['FOTO']; echo "<tr> <td>" . $cicle['CODICEARTICOLO'] . "</td> <td><img src='" . $url . "' width='50' height='50' /> </td> <td>" . $cicle['DESCRIZIONE'] . "</td> <td>" . $cicle['PREZZO'] . " Euro</td> </tr>"; } $query->close(); $db_connection->close();
推荐阅读
- laravel - Vue js PATCH http://127.0.0.1:8000/api/auth/profile 401(未经授权)
- markdown - 在 Markdown 中格式化深层列表
- php - 匹配令牌及其可能重叠的上下文
- javascript - mapbox-gl-js 路线不准确
- rdf - 与“小”个体打交道的最佳方法是什么?
- c++ - 使用管道从 STDIN 读取分叉进程的问题
- php - 如何将数组添加到我的 php 变量中,循环不适用于数组
- javascript - 正则表达式匹配字符串的句子和单词
- bash - 如何在别名或函数中表达多个键值对?
- swift - 是否需要在 performBackgroundTask() 中使用 perform() 和 performAndWait(),是否可以使用?