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);
如果是新安装或新升级,您需要将端口包含在连接中,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
我尝试将我的 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);
如果是新安装或新升级,您需要将端口包含在连接中,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