首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysqli_connect():(HY000/2002):网站建设中拒绝连接

问Mysqli_connect():(HY000/2002):网站建设中拒绝连接
EN

Stack Overflow用户
提问于 2020-10-12 09:57:16
回答 3查看 2.8K关注 0票数 0

我将一个小的服务站点从AlterVista门户转移到我的NAS语法,运行良好的代码现在不再在我的NAS上运行。从连接错误到MariaDB。我已经读过你的论坛关于这个问题,但这是另一个系统(不是个人电脑,但nas与其自己的应用程序)。我使用的是端口3307,因为mariadb10正在监听该端口。(当mariadb 5正在监听端口3306时,您也可以检查)

在NAS上,我已经安装了MariaDB、PHP、PHP (与mariadb连接良好)、ApacheHTTPServer2.2,以及所有需要安装PHP 5、7 (mysqli、pdo驱动程序和其他选项)的驱动程序和选项。

代码语言:javascript
复制
<?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):第111号行上的连接被拒绝在>/volume1 1/web/listino.php中警告: mysqli::select_db():无法获取mysqli >in /volume1 1/web/listino.php第114行Errore nella selezione del DB.

EN

回答 3

Stack Overflow用户

发布于 2020-10-12 10:41:45

请尝尝这个

代码语言:javascript
复制
$db_host        = '127.0.0.1';
$db_user        = 'root';
$db_pass        = '';
$db_database    = 'database_name';
$db_port        = '3306';

$connection = mysqli_connect($db_host,$db_user,$db_pass,$db_database,$db_port);
票数 -1
EN

Stack Overflow用户

发布于 2020-10-12 14:18:42

我修改了图形控制台语法Nas:

  1. on (PHP设置端口3307而不是3306).

  1. 中的PHP代码端口3307值.

3307(default)上/IP端口设置上的db10标志启用

票数 -1
EN

Stack Overflow用户

发布于 2020-10-12 12:23:17

当连接到Synology上的MariaDB时,您需要提供所有六个参数。第六个参数是您应该使用的套接字名称。

mysqli连接的正确代码如下:

代码语言:javascript
复制
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// Please do not connect as root!
$mysqli = new mysqli('localhost', 'root', 'password', 'miodb', 3307, '/run/mysqld/mysqld10.sock');
$mysqli->set_charset('utf8mb4'); // always set the charset

如果您只是从PHP开发开始,那么我建议您学习PDO,而不是mysqli。使用PDO,您将以这种方式连接:

代码语言:javascript
复制
$pdo = new PDO("mysql:host=localhost;dbname=miodb;charset=utf8mb4;unix_socket=/run/mysqld/mysqld10.sock", 'root', 'password', [
    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
    \PDO::ATTR_EMULATE_PREPARES => false
]);
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64315574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档