#1045 - 访问被拒绝:使用密码为YES的用户“root”@“localhost”

37

这可能看起来有些冗余,但我无法找到正确的解决方案。

我无法使用mysql控制台登录mysql。它正在要求密码,但我不知道我实际输入了什么。(是否有办法获取密码或更改密码?)这是我的config.inc文件的内容。

当我尝试打开phpmyadmin时,我遇到了这个错误(#1045 - 用户'root'@'localhost'被拒绝访问(使用密码:是))。

<?php

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
 $cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'prakash123';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/* End of servers configuration */

$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';


/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';


?>

我尝试卸载(并删除所有相关文件)WAMP并重新安装,但这也没有帮助。 在重新安装WAMP服务器时,它没有要求任何用户名密码信息,我不知道为什么。 非常感谢任何帮助。


你尝试过将数据库'mysql'(其中包含凭据)移开,然后查看是否在重新启动时重新创建了它吗? - Eugen Rieck
2
看这里:https://dev59.com/oHE85IYBdhLWcg3wl0nF我会说 $cfg['Servers'][$i]['password'] = 'prakash123'; prakash123 是你的密码。 - helenbn
#2002 无法登录MySQL服务器。这是我移动Mysql后遇到的新错误。@Eugen Rieck - Prakash
@helenbn 我知道prakash123是我的密码,但我无法打开PHPMyadmin。 - Prakash
24个回答

38

我首先在mysql提示符下运行以下命令更改了根密码:

mysql -u root -p

更新密码:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';

在文件config.inc.php中编辑了一行,并更新了根密码:

$cfg['Servers'][$i]['password'] = 'MyNewPass'

停止并重新启动 mysql 服务(在 Windows 中:mysql_stop.bat/mysql_start.bat),然后使 phpMyAdmin 工作!

编辑 2017: 对于 MySQL≥5.7 使用authentication_string代替Password(参见此答案):

`UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';

5
完成此操作后,终止 MySQL 进程并重新启动它! - yashhy
2
如果 mysql -u root -p 要求密码,但尝试的任何方法都导致 #1045 错误,应该怎么办? - Stan Derksen
@StanDerksen 在我的情况下,mysql -u root -p 的密码是服务器的root密码。 - programmingaddict

10
问题在于我安装了两个Mysql实例,而且我不知道这两个实例的密码。请检查80端口是否被任何程序使用。
以下是我的解决方法:
1.退出Skype,因为它正在使用80端口。(请检查80端口是否被其他任何程序使用)。
2.在任务管理器中搜索Mysql服务并停止它。
3.现在删除所有相关的Mysql文件。确保你删除了所有文件。
4.重新安装。

5

好的,已经有许多解决方案在上面提供了。如果它们都不起作用,也许您应该尝试重新将密码重置为“root”,如这里所述,并在其他浏览器中重新打开http://localhost/phpMyAdmin/。至少这个解决方案对我有效。


3
这对我很有帮助。 在您的配置文件中。
$cfg['Servers']['$i']['password'] = 'yourpassword';

在你的MySQL shell中,以root身份登录

mysql -u root

如果您忘记了旧密码,可以更改密码或更新密码

UPDATE mysql.user SET Password=PASSWORD('yourpassword') WHERE User='root';

您可以通过 XAMPP 控制面板停止和重新启动 MySQL 服务器。使用 phpMyAdmin 可以登录并查看数据库。


2
  1. mysql -u root -p
  2. UPDATE mysql.user SET Password=PASSWORD('mypass') WHERE User='root';
  3. 刷新权限: FLUSH PRIVILEGES;
  4. 输入Exit退出
  5. 在文件config.inc.php中编辑新的root密码行:$cfg['Servers'][$i]['password'] = 'mypass'

  6. 成功!


UPDATE mysql.user SET Password=PASSWORD('yourpassword') WHERE User='root'; 如果有人使用mysql5.7版本,上述更新将无法在该版本中工作... - zahid

2

进入 config.inc.php 文件,找到 $cfg['Servers'][$i]['password'] 并删除其中提供的任何密码,即将 $cfg['Servers'][$i]['password'] = 'password'; 改为 $cfg['Servers'][$i]['password'] = '';

现在你可以启动 phpMyAdmin

phpMyAdmin 中选择 Users 菜单,选择 root 用户并点击 Edit previlidges。 现在滚动到Change Password区域,在No PasswordPassword之间切换以提供新密码。 就是这样。


2

今天我也遇到了同样的错误。我安装了Djangostack,当我检查任务管理器时发现有两个mysqld实例在运行。我检查了其中一个是wamp服务器,另一个是django stack。我结束了django stack的一个实例,重新启动了wamp服务器中的所有服务,然后就可以访问phpmyadmin了。


2

安装后,我启动了WAMP,被要求输入用户名和密码,但是这些默认设置(用户:admin,密码:dots)是错误的,你的主题中也提到了。然后,我只需输入:

用户名:root
密码:(留空即可)

这样就可以正常使用了!


2

mysql.exe ->以管理员身份运行或前往以下路径C:\wamp\bin\mysql\mysql5.5.24\bin,然后右键单击mysql.exe并转到属性,选择兼容性选项卡并查看对话框底部的权限级别,只需勾选“以管理员身份运行此程序”,然后单击应用和确定即可。完成后,您可以成功打开phpMyadmin。再见。


2

转到 'config.inc.php' 文件。在这里写下你的密码 - $cfg['Servers'][$i]['password'] =''


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