171

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

我安装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**)

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

4

18 回答 18

104

对于这种错误;您只需以管理员身份为 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> 
    
于 2014-05-29T02:37:10.773 回答
64

您可以重置您的根密码。请记住,不建议在没有密码的情况下使用 root。

于 2010-06-08T05:54:55.547 回答
25

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' 的密码,那么您必须做 2 件事来解决错误“用户 'root@localhost' 的访问被拒绝”:

  1. 如果 ['password'] 有像' '这样的空引号,则将密码放在引号之间。
  2. 将(使用密码:NO)更改为(使用密码:YES)

这将解决错误。

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

于 2012-12-25T08:35:57.153 回答
14

使用 mysql -u root -p 会询问密码,插入密码,回车。

于 2019-05-16T11:10:01.530 回答
12

我在 OS X El Captain 上遇到了同样的错误。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 文档以获取更多详细信息

于 2016-07-05T10:54:29.757 回答
9

只需编辑my.iniC:\xampp\mysql\bin 路径中的文件。只需添加:

skip-grant-tables

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

好像:

截屏

于 2018-03-16T00:19:14.053 回答
6

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

保护初始 MySQL 帐户

于 2010-06-08T05:56:06.920 回答
5

有关某些信息,我在更改密码后收到错误消息:

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

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

在这两种情况下都有错误。

但事情是在那之后我试过了

mysql -uroot -ppassword代替

mysql -u root -p password-> -uroot 和 -ppassword 之间有空格,所以如果有人遇到麻烦可以尝试这种方式。

于 2020-03-01T18:39:13.357 回答
4

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

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

•卸载旧版本的 MySQL .NET 连接器

•下载并安装最新的MySql .NET 连接器

于 2014-04-05T18:50:35.037 回答
4

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

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

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

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

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

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

输入mysql并按回车。

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

执行以下命令更新密码:

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

于 2016-12-01T02:30:49.293 回答
3

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

于 2015-06-22T19:21:41.710 回答
3

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

于 2018-08-04T06:22:12.430 回答
3

如果您将端口更改为非标准端口,则需要指定它:

$connection = mysqli_connect('localhost:3308', 'root', '', 'loginapp');
于 2020-05-21T18:54:43.233 回答
2

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

于 2015-02-05T08:07:01.470 回答
2
  1. 将密码从config.inc.php存在于 中更改C:\xampp\phpMyAdmin
  2. mysql -u root -p在命令提示符下键入。
  3. 您将被要求输入密码。输入您在 中更新的密码config.inc.php
于 2020-05-19T15:39:00.270 回答
0

如果 root 帐户存在但没有密码,则以 root 身份使用无密码连接到服务器,然后分配密码。这是我遇到此问题时的情况。

不使用密码以 root 身份连接到服务器:

$> mysql -u root --skip-password

分配密码:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

我能够以这种方式解决我的问题。希望这对将来遇到类似问题的人有所帮助。干杯!

参考:https ://dev.mysql.com/doc/refman/8.0/en/default-privileges.html

于 2022-01-09T17:10:34.023 回答
-1
mysqladmin -u root -p password

输入您的current password

然后

输入您的new password

于 2013-10-07T16:26:19.697 回答
-3

发生这种情况是出于安全原因。

尝试以下

mysql -u root -p    

点击进入并输入密码,然后重试

于 2021-04-27T08:30:34.853 回答