与MariaDB的PHP连接错误:错误1045访问被拒绝

时间:2019-04-05 05:31:11

标签: php mariadb

我正在尝试使用PHP连接到mariadb数据库,但未成功。每次尝试都会得到以下结果:

  

错误:无法连接到MySQL。调试错误号:1045调试错误:用户'gt_user'@'localhost'的访问被拒绝(使用密码:是)

我尝试了很多尝试。甚至恢复到一个永不连接的简单index.php测试。

使用相同的用户凭据从命令行连接可以正常工作

mysql -u USER -p -h localhost database

我什至尝试给用户所有特权,并用@'%'而不是@'localhost'创建同一用户

这是我正在尝试的简单测试php代码:

<?php
$link = mysqli_connect("localhost", "gt_user", "passpass", "gt_monitor");

if (!$link) {
    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($link) . PHP_EOL;

mysqli_close($link);
?>

我也尝试从本地主机和远程主机上的浏览器进行尝试。同样的错误。

我认为这与缺少依赖项有关。不知道如何彻底检查。在最新的Rasbian Stretch上的Raspberry pi上运行PHP 7.0.33和mariadb 10.1.37。

2 个答案:

答案 0 :(得分:0)

设法解决这个问题。

基本上干净地删除了mysql,重新安装并重新设置数据库。插入一些数据并重新测试了首先运行的测试index.php。

为便于将来参考,以下是我为使步入正轨而采取的以下步骤:

 sudo apt-get remove --purge mysql-server mysql-client mysql-common -y
 sudo apt-get autoremove -y
 sudo apt-get autoclean

然后重新安装(还可以使用树莓派GPIO和Python:

sudo apt update
sudo apt install mariadb-server
sudo apt-get -y install python-mysql.connector
pip install mysql-connector
pip install mysql-connector-repackaged
pip install mysql-connector-python
pip install mysql-connector-python-dd 
pip install mysql-connector-python-rf

我确实将gt_user密码限制为仅大写/小写字母和数字。没有特殊字符。

希望这对以后的人有帮助。

答案 1 :(得分:0)

我有同样的问题。

最后对我有用的是使用PDO代替mysqli_connect()进行连接。

$myPDO = new PDO('mysql:host=localhost;dbname=dbname', 'username', 'password');

有趣和棘手的问题。当然。