【问题标题】:'Access denied for user 'root'@'localhost' (using password: NO)''用户'root'@'localhost'的访问被拒绝(使用密码:否)'
【发布时间】:2011-12-16 17:00:32
【问题描述】:

我正在尝试设置用户 root 的密码,但出现以下错误,您知道吗?

+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*436576511F70A4E3B305E1AB8E209851945D8687' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


mysql> exit
Bye
root@tirengarfio:/var/www/rs2# mysqladmin -u root password foo,
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

【问题讨论】:

标签: mysql


【解决方案1】:
$ mysqladmin -u root -p password
Enter password: 
New password: 
Confirm new password:

password 是按字面输入的。这是一个命令。您不必将password 替换为您的实际密码。

【讨论】:

  • 这是迄今为止我见过的最简单的方法
  • 你不能在-p中输入密码
  • 它有效。您可能会用您的实际密码替换passwordpassword 是这里的命令。
  • 谁赞成这个?这根本行不通。它会提示您输入密码...
  • 在 Linux 中,密码通常是隐藏的,因此您看不到您输入的内容。它相当于 Windows 中的 *******。
【解决方案2】:
# /etc/init.d/mysqld stop

Stopping MySQL: [ OK ]

# mysqld_safe --skip-grant-tables &

[1] 13694

# Starting mysqld daemon with databases from /var/lib/mysql



# mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.77 Source distribution



Type 'help;' or '\h' for help. Type '\c' to clear the buffer.



mysql>

【讨论】:

  • 我也遇到了几乎相同的问题,而且我还不得不重置 mysql 密码。首先我运行了上面的步骤,然后在nixcraft的帮助下不得不这样做:
    # use mysql;
    mysql> update user set password=PASSWORD("NEWPASSWORD") where User='root';
    mysql> flush privileges;
    mysql> quit
  • 这根本不起作用。 mysqld_safe 立即失败:2017-05-07T00:11:22.676724Z mysqld_safe Logging to '/var/log/mysql/error.log'. /usr/bin/mysqld_safe: 150: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied 2017-05-07T00:11:22.680077Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists. /usr/bin/mysqld_safe: 150: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
【解决方案3】:

设置/更改密码:

mysqladmin -u root -p password

登录 MySQL 控制台:

mysql -u root -p

退出控制台:

.\q

【讨论】:

  • 如何验证mysqladmin?
  • 它就写在那里,mysqladmin -uroot -poldpassword password newpassword - 这就是您如何验证为具有访问权限的有效用户并发出更改密码的命令。你 -1 我的回答了吗?
【解决方案4】:

当尝试运行这个命令时,我得到了同样的错误

sudo mysqladmin create asteriskcdrdba

我只是在代码中添加几行

-u root -p

然后按下回车键。然后我输入我的密码并按回车键。 Linux 喜欢我的命令,因为没有显示更多内容

所以不妨试试

sudo <your command here> -u <username> -p

然后点击回车并输入您的密码

【讨论】:

    【解决方案5】:

    这些都是很好的答案,但并没有完全触及在面对 OP 问题时最有可能遇到的问题的深层原因。也就是说,不知道安装期间创建的原始“启动”密码。

    所有这些带有“-u root ...”等的命令行都意味着知道并使用那个密码。

    现在原始安装消息中的这部分可能会帮助任何面临上述问题的人:

    第一次使用 MySQL 的初始密码保存在 $HOME/.mysql_secret
    IE。 当你想首先使用“mysql -u root -p”时你应该看到密码
    在 /root/.mysql_secret

    【讨论】:

      【解决方案6】:

      这基本上是先前答案的更详细版本。

      在您的终端中,转到您的实用程序的位置,mysqladmin

      例如,如果您在进行本地开发并使用 M/W/XAMP 之类的应用程序,您可能会转到目录:

      /Applications/MAMP/库/bin

      这是 mysqladmin 所在的位置。

      如果您没有使用 MAMP 之类的应用程序,您也可以在以下位置找到 mysql 的本地安装:/usr/local/mysql

      然后如果你去:/usr/local/mysql/bin/

      你在mysqladmin所在的目录中。

      然后,要更改密码,您将执行以下操作:

      1. 在终端提示符下输入下面的 exact 命令(也称为复制和粘贴),然后按 enter。 “密码”这个词是命令的一部分,所以不要混淆并得出这样的结论,即您需要用您之前创建的或将来要使用的密码替换这个词。您将有机会尽快输入新密码,但您不会在第一个命令中这样做:

        ./mysqladmin -u root -p 密码

      2. 终端将要求您输入原始密码或初始密码,而不是新密码目前。从您提供的上图中,您似乎已经创建了一个,因此请在此处输入:

      Enter password:旧密码

      1. 终端将要求您输入新密码。在此处输入并按 enter

      New password:新密码

      1. 然后终端会要求您确认新密码。在此处输入并按 enter

      Confirm new password:新密码

      重置或重新启动您的终端。

      在某些情况下,与 M/W/XAMP 一样,您必须在各种文件中更新此新密码才能让您的应用程序再次正常运行。

      【讨论】:

        【解决方案7】:
        • 使用以下路径打开my.cnf

        C:\xampp\mysql\bin

        • under # 以下选项将传递给所有 MySQL 客户端 #password 删除 # 评论符号,如果有 password = "newpassword"

        • 保存文件

        • 关闭文件

        • 重启mysql

        【讨论】:

        • 能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?
        • 这仅适用于 windows。
        【解决方案8】:

        首先,进入终端上的文件夹support-files,并启动服务器 通过 mysql.server 启动, 其次,转到终端上的文件夹 bin 或键入 /usr/local/mysql/bin/mysqladmin -u root -p 密码

        它会询问您在安装 Mysql 时提供给您的旧临时密码,输入该密码并输入您的新密码即可。

        【讨论】:

          猜你喜欢
          • 2016-12-27
          • 2012-06-17
          • 2017-07-10
          • 2014-06-06
          • 2017-12-20
          • 2012-08-11
          相关资源
          最近更新 更多