PHP 文件无法连接到 sql 数据库,显示错误 #1045 但代码中的值是正确的

PHP file wont connect to the sql database, it says error #1045 but the values on the code are right

我尝试将我的 PHP 文件连接到 MySQli 数据库,但是当我 运行 代码显示

但是当我登录到 phpmyadmin 时它工作正常没有错误我可以毫无问题地登录到我的帐户

数据库中的凭据:

连接代码:

<?php

$con = mysqli_connect('localhost','sotomango', '1234', 'mysql');

    if(!$con) {

        echo 'noooo';

    }

?>

我仔细检查了数据库用户名、密码和权限。一切似乎都正确无误,但 php 文件不允许我连接到数据库。

@Dharman 有一个不错的 post 但我找不到它。

试试这个进行调试:

    $con = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

    if (!$con) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
  echo "Success: A proper connection to MySQL was made! The my_db database is 
  great." . PHP_EOL;
  echo "Host information: " . mysqli_get_host_info($con) . PHP_EOL;

mysqli_close($con);

mysqli_connect

如果是新安装或新升级,您需要将端口包含在连接中,mariadb 是默认端口,因此,当您尝试连接时 mysql 它会重定向到 mariadb。

您需要将正确的端口包括到连接中,它可能是 3306、3307 或 3308,并且使用 ip 而不是 localhost

您的最终代码应如下所示:

$host = '127.0.0.1';
$db   = 'test';
$user = 'root';
$pass = '';
$port = '3308';
$charset = 'utf8mb4';

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
try {
    $mysqli = mysqli_connect($host, $user, $pass, $port, $db);
    mysqli_set_charset($mysqli, $charset);
} catch (\mysqli_sql_exception $e) {
     throw new \mysqli_sql_exception($e->getMessage(), $e->getCode());
}

对于想知道的人

我通过向主机名添加一个端口解决了这个问题,例如 localhost:3308