Php 以非Root用户身份连接到MySQL时身份验证失败
对于我创建的新用户帐户,我的登录尝试失败了,我花了几个小时学习MySQL如何处理身份验证,但最终我认为我还没有完全理解MySQL服务器的身份验证逻辑中所有组件是如何组合在一起的 都在同一台服务器上:Php 以非Root用户身份连接到MySQL时身份验证失败,php,mysql,lamp,Php,Mysql,Lamp,对于我创建的新用户帐户,我的登录尝试失败了,我花了几个小时学习MySQL如何处理身份验证,但最终我认为我还没有完全理解MySQL服务器的身份验证逻辑中所有组件是如何组合在一起的 都在同一台服务器上: MySQL 5.7 phpMyAdmin 4.9 Ubuntu 18.04 其他信息: 表mysql.user中没有用户名为空的用户 密码没有特殊字符 我尝试了localhost、127.0.0.1和实际主机名本身 /var/log/mysql/error.log只显示完全相同的错误消息 创
- MySQL 5.7
- phpMyAdmin 4.9
- Ubuntu 18.04
- 表mysql.user中没有用户名为空的用户
- 密码没有特殊字符
- 我尝试了localhost、127.0.0.1和实际主机名本身
- /var/log/mysql/error.log只显示完全相同的错误消息
- mysql-u testuser-p
- mysql-u testuser-h 127.0.0.1-p
- mysql-u testuser-h localhost-p
- mysql-u testuser-h-p
尝试授予如下权限:
GRANT ALL ON inventory.* TO 'testuser'@'localhost';
拒绝访问表示您的用户名或密码不正确。如果php脚本在远程计算机上运行,并且您提供localhost作为dbhost,则您正在连接到运行php脚本的计算机上的mysql。这可以解释拒绝访问的原因。那个ssh会话对我来说也是可疑的,我不认为你连接到了mysql服务器,你认为你连接到了mysql服务器。@Shadow它是错误的服务器。我想你一个星期只能被解雇三次,所以我没有超出这个限度。谢谢我建议你删除这个问题
<?php
$dbhost='localhost';
$dbuser='testuser';
$dbpass='password';
$dbname='inventory';
$conn = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
if($conn->connect_error) {
die("Error: Couldn't connect: ".$conn->connect_error);
}
?>
GRANT ALL ON inventory.* TO 'testuser'@'localhost';