用户'root'@localhost访问被拒绝,MySQL错误1045。

5

我是 PHP 的新手。执行我的应用程序时,出现了以下错误:

在 phpMyadmin 中,代码如下:

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

由于我已经备份了,所以我已经更改了上面的代码为

$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'Pass123';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

现在我遇到了以下错误

访问被拒绝,用户 'root'@'localhost' (使用密码: YES) MySQL 错误 # :1045

请告诉我,这里出了什么问题。


你确认了以下两点吗?1)你是否有正确的用户名/密码?2)你的域名是否能够连接到MySQL服务器(使用phpMyAdmin进行验证)。 - JohnP
你有没有做过一些搜索,看看这些链接:https://dev59.com/Uk7Sa4cB1Zd3GeqP0Amp、http://stackoverflow.com/questions/2540794/unable-to-access-mysql-from-myphpadmin-after-setting-root-password-in-easyphpwam、http://stackoverflow.com/questions/3532868/mysql-error-1045-access-denied。 - gideon
分享一些代码...这样我们可以帮助你,看起来你没有将正确的密码传递给函数mysql_connect。 - Necronet
2
它之前一直运行良好。如果输入错误密码,则会显示“密码不正确”的错误消息。但现在它直接显示错误页面... - Gnanendra
@JohnP:"访问被拒绝"是指可以连接,但无法登录。如果是连接问题,应该是"连接被拒绝"。 - Marc B
7个回答

3
在这个问题上浪费了大部分的一天后,事实证明我只需要提供非本地主机名即可。我不知道为什么(用户被允许从任何主机连接),但它起作用了!
root@base:~# mysql -u username -h hostname -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

在PHP中:

Test 1807:
<?php
$username = "username";
$password = "password";
$hostname = "actualhostnamenotlocalhost"; 

$con = mysqli_connect($hostname, $username, $password);

// Check connection
if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_close($con);    

?>
OK.

2
没有人提到可能是由于某种原因,您的用户分配的主机名可能是错误的。当它说root@localhost时,意味着使用localhost主机的root用户。
在一些服务器上,默认的root可能不在localhost上。请尝试以下内容: root@127.0.0.1 root@[yourhostname]

0
请检查您在此处输入的密码。
当您的密码与原始密码不匹配时,会出现这种错误。

我现在该如何重置密码? - Gnanendra

0

请确保您已为MySQL分配了密码


没有,我没有给它分配任何密码... 我只是按照上面提到的方式操作。 - Gnanendra
请勿在此处分配密码 $cfg['Servers'][$i]['password'] = 'Pass123',删除 'pass123'。 - Mujahid

0

0

MySQL服务器和它运行的端口可能会出现问题,缺省值为3306。如果不起作用,请在my.ini(或类似的mysql-ini文件)中更改端口,同时还需在phpmyadmin文件夹中的config.inc.php中更改端口引用。

因此,Gnanendra在这里解释的错误

用户'root'@'localhost'被拒绝访问(使用密码:YES)MySQL错误#:1045

可能是由于MySQL服务器未正确运行而引起的。

此外,请查看此帖子以获取有关此问题的更多信息:

无法启动服务器:绑定TCP/IP端口:没有这样的文件或目录


0

请确保密码正确(大小写锁定?)并尝试使用原始IP地址,例如127.0.0.1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接