用户'root @ localhost'拒绝访问(使用密码:NO)

问题描述 投票:79回答:13

我是MySQL的新手,我正试图在我的Windows桌面上运行WordPress,它需要MySQL。

我使用Microsoft提供的Web Platform Installer安装所有内容。我从未为MySQL设置root密码,在安装WordPress的最后一步,它要求提供MySQL服务器密码。

root(如果有)的默认密码是什么以及如何更改?

我试过了:

mysql -u root password '123'

但它告诉我:

Access denied for user 'root@localhost' (using password:NO)

在此之后我尝试:

mysql -u root -p

但是,它要求我没有密码。


更新:正如Bozho建议的那样,我做了以下事情:

  1. 我从Windows服务中停止了MySQL服务
  2. 开通CMD
  3. 将位置更改为c:\ program files \ mysql \ bin
  4. 执行以下命令 mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt
  5. 该命令运行时带有关于字符集的警告,我在下面提到过
  6. 我从Windows服务启动MySQL服务
  7. 我在命令行中写道 mysql -u root -p EnterPassword: 123 // 123 was the password
  8. 命令行显示以下错误 Access denied for user 'root@localhost' (using password:**YES**)

我该如何解决这个问题?我等着你的消息。

mysql wordpress mysql-error-1045
13个回答
35
投票

你可以reset your root password。请记住,不建议在没有密码的情况下使用root。


1
投票

如果您正在使用XAMPP,请转到C:\xampp\phpMyAdmin然后打开config.inc.php找到$cfg['Servers'][$i]['password'] = ''行并将密码放在那里。


0
投票

有时它只是由于安装Wamp或更改root用户的密码选项而发生的。可以使用privilages - > root(user)然后将password选项设置为NO以运行没有任何密码的东西或设置密码并在应用程序中使用它。


0
投票

使用mysql -u root -p它会询问密码,插入密码并输入。


-2
投票
mysqladmin -u root -p password

输入你的current password

然后

输入你的new password


56
投票

对于这种错误;您只需要以管理员身份为root用户设置新密码。请按照以下步骤操作:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. 停止运行mysql的服务/守护进程 [root ~]# service mysql stop mysql stop/waiting
  2. 使用以下选项启动没有任何权限的mysql;此选项用于启动,不使用MySQL的权限系统。 [root ~]# mysqld_safe --skip-grant-tables &

此时,终端似乎停了下来。那就是,并使用新的终端进行后续步骤。

  1. 进入mysql命令提示符 [root ~]# mysql -u root mysql>
  2. 修复root用户的权限设置; mysql> use mysql; Database changed mysql> select * from user; Empty set (0.00 sec) mysql> truncate table user; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option; Query OK, 0 rows affected (0.01 sec)

*如果您不想要任何密码或更确切地说是空密码

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

确认结果:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. 退出shell并以正常模式重启mysql。 mysql> quit; [root ~]# kill -KILL [PID of mysqld_safe] [root ~]# kill -KILL [PID of mysqld] [root ~]# service mysql start
  2. 现在,您可以使用您设置的密码以root用户身份成功登录 [root ~]# mysql -u root -pYourNewPassword mysql>

14
投票

1)您可以通过调用MySQL控制台来设置root密码。它位于

C:\wamp\bin\mysql\mysql5.1.53\bin默认情况下。

转到目录并键入MySQL。然后设置密码如下..

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2)您可以通过编辑为root用户配置wamp的phpmyadmin应用程序

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

注意: - 如果您正在使用xampp,则文件将位于

C:\xampp\phpMyadmin\config.inc.php

它看起来像这样:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

$cfg['Servers'][$i]['AllowNoPassword']设置为false时,将解决“拒绝用户'root @ localhost'(使用密码:NO)”错误

如果您之前更改了“root @ localhost”的密码,那么您必须做两件事来解决错误“访问被拒绝用户'root @ localhost'”:

  1. 如果['password']有一个空引号,如'',那么将你的密码放在引号之间。
  2. 将(使用密码:NO)更改为(使用密码:YES)

这将解决错误。

注意:phpmyadmin是一个单独的工具,附带wamp。它只是为MySQL提供了一个接口。如果你更改我的sql root的密码,那么你应该更改phpmyadmin配置。通常phpmyadmin配置为root用户。


9
投票

我在OS X El队长身上得到了同样的错误。 Mysql 5.7版。执行这些步骤后,我能够用root连接到mysql。

停止mysql服务器

sudo mysql.server stop

以安全模式启动mysql

sudo mysqld_safe --skip-grant-tables

使用mysqld,将数据库更改为mysql并更新用户'root'的详细信息。

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

之后杀死'mysqld_safe'进程并正常启动mysql。您应该能够使用root和新密码登录mysql。 SQL docs for more details


3
投票

确保MySQL服务在您的计算机上运行,​​然后按照MySQL的说明初步设置root(搜索'windows',它将带您进入设置root的步骤):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html


2
投票

对于MySQL 5.7。这些是以下步骤:

完全停止MySQL服务器。这可以通过访问Windows XP和Windows Server 2003中的“服务”窗口来完成,您可以在其中停止MySQL服务。

在“运行”窗口中使用“cmd”打开MS-DOS命令提示符。在里面它使用cd命令导航到你的MySQL bin文件夹,例如C:\ MySQL \ bin。

在命令提示符中执行以下命令:mysqld.exe -u root --skip-grant-tables

保持当前的MS-DOS命令提示符,并打开一个新的MS-DOS命令提示符窗口。

使用cd命令导航到您的MySQL bin文件夹,例如C:\ MySQL \ bin。

输入mysql并按Enter键。

您现在应该可以使用MySQL命令提示符。输入mysql;这样我们就切换到了“mysql”数据库。

执行以下命令更新密码:

更新用户集authentication_string = password('1111')其中user ='root';


1
投票

另一个解决方案,如果有人收到错误用户帐户“root”的指定密码无效,或者使用正确的密码也无法连接到数据库服务器,如下

•在Windows注册表中,删除HKCU \ Software \ Microsoft \ WebPlatformInstaller下的mysql_pwd注册表项

•取消部署旧版本的MySQL .NET连接器

•下载并安装最新的MySql .NET Connector


1
投票

在您的代码中,将“root”替换为您的服务器用户名和密码以及服务器密码。例如,如果你在服务器http://www.example.com上有DB和你的php文件,那么显然你必须使用你的用户名和密码进入这个服务器站点。


1
投票

只需在C:\ xampp \ mysql \ bin路径中编辑my.ini文件即可。只需添加:

skip-grant-tables

# The MySQL server [mysqld]port=3306之间的线。然后重启MySQL服务器。

好像:

Screenshot

© www.soinside.com 2019 - 2024. All rights reserved.