我正在尝试使用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。
答案 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');
有趣和棘手的问题。当然。