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

标签 mysql wordpress mysql-error-1045

我正在尝试在 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 是密码

  8. 命令行显示以下错误

    用户“root@localhost”访问被拒绝(使用密码:**YES**)

如何解决这个问题?

最佳答案

对于这种错误;您只需以管理员身份为 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 &
    

此时,终端似乎停止了。就这样吧,并使用新终端进行后续步骤。

  • 输入mysql命令提示符

     [root ~]# mysql -u root
     mysql> 
    
  • 修复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)
    
  • 退出 shell 并以正常模式重新启动 mysql。

     mysql> quit;
     [root ~]# kill -KILL [PID of mysqld_safe]
     [root ~]# kill -KILL [PID of mysqld]
     [root ~]# service mysql start
    
  • 现在您可以使用您设置的密码以 root 用户身份成功登录

      [root ~]# mysql -u root -pYourNewPassword 
      mysql> 
    
  • 关于mysql - 用户 'root@localhost' 的访问被拒绝(使用密码 :NO)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45760976/

    相关文章:

    php - 使用 PHP 插入 mySQL 但没有显示在 phpmyadmin 中

    php - 有人知道 PHP 的默认异常代码吗?

    php - 多站点 Wordpress、SSL 和 htaccess 以将子文件夹用作根目录

    mysql - 如何允许用户登录MySQL?

    php - 填充 onchange 事件的第二个下拉列表

    php - 首先从下拉菜单中选择国家,然后是地区,然后是城市?

    php - 在Memberpress中检查用户订阅类型

    php - WordPress:OrderBY meta_key_value 包括空值

    mysql - 用户 'root' @'localhost' 的访问被拒绝(使用密码 :YES) joomla install on windows 7 with web platform installer

    mysql - 如何重置mysql root密码?