mysql [1045]访问被拒绝用户'root'@'localhost'(使用密码:NO)

knsnq2tg  于 2024-01-05  发布在  Mysql
关注(0)|答案(4)|浏览(208)

当我尝试在localhost上运行我的PHP代码时,出现以下错误:
致命错误:未捕获的PDO异常:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost'(using password:NO)in C:\xampp\htdocs\Final Project CSE-391\project\soft.php:2
堆栈跟踪:
#0 C:\xampp\htdocs\Final Project CSE-391\project\pages.php(2):PDO->__construct('mysql:host=loca...','root','')
#1 C:\xampp\htdocs\Final Project CSE-391\project\index.php(2):include('C:\xampp\htdocs...')
#2 {main}在C:\xampp\htdocs\Final Project CSE-391\project\js.php第2行抛出
我需要解决这个问题的建议。

sauutmhj

sauutmhj1#

这是一个错误的凭据问题。在将其放入连接配置之前,请检查您在浏览器上用于登录PHPMyAdmin的值,以确保其正确。
您可能输入了错误的密码或在设置密码后将密码保留为空。

ru9i0ody

ru9i0ody2#

解决方案

我通过指向SQL端口**$host = 'localhost:3307'**而不是$host='localhost'修复了这个问题。

示例

$host = 'localhost:3307';
$db = 'php_crud';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$username = 'root';
$password = '1234';
$pdo = new PDO($dsn, $username, $password);

字符串

hi3rlvi2

hi3rlvi23#

如果phpMyAdmin端口不是默认端口,那么在主机上,不仅要包含localhost,还要指定端口,例如localhost:3311。


的数据
例如

define("HOST", "localhost:3311");
define("USER", "root");
define("PASS", "");
define("DBNAME", "phprestaurant");

字符串

bxgwgixi

bxgwgixi4#

如果你使用密码生成器来创建你的密码,就像我有时做的那样,你可能会得到这样的密码:LJdKE$7swNZ00En2iLwFS3NSvq#当你使用PhpMyAdmin时,它会很好地工作。
如果你得到一个SQLSTATE[HY000] [1045] Access denied for user.错误。那么你的密码中有一个PHP不喜欢的字符。
在我的情况下,它是密码末尾的“#”。解决方案,更改密码。

相关问题