错误 1045 (28000):访问被拒绝,用户 'root'@'localhost'(使用密码:YES)

9
请原谅我的初学者水平:
我正在尝试使用cmd命令行登录我在Windows机器上使用easyPHP安装的第一个mySQL数据库。我进入\mysql\bin目录并输入以下命令:
mysql -u root

我想登录,但是我收到了以下的信息:

error 1045 (28000) access denied for user 'root'@'localhost' (using password: YES)

为什么要使用密码“YES”?难道不应该没有密码吗?我需要重新启动mySQL吗?如果需要,如何进行操作?如果有关联的话,我曾尝试使用phpmyadmin创建数据库,但在输入列时遇到了一些问题,因此决定从命令行开始工作,以便逐步学习所有命令。请注意,这是我第一次尝试使用数据库,请对我友善一点!

6
"using password: YES" 的意思是你正在使用密码,而不是 "YES" 是那个密码。 - Borealid
2
1045错误解释在这里:http://www.webyog.com/faq/content/23/18/en/error-no-1045-connection-denied.html - Man_k
4个回答

8

为了让mysql要求您输入密码,您还需要指定-p选项:

mysql -u root -p

可以,谢谢。我能在哪里学习更多关于各种命令和需要使用终端的东西吗?它们在Windows和Linux上有显著的不同吗? - mavix
不,mysql 命令行客户端在 Windows 或 Linux 上的命令并没有区别。但是它们可能会因为 mysql 版本的不同而有所差异。我认为你应该阅读手册:http://dev.mysql.com/doc/refman/5.5/en/mysql.html 在 Linux 上,你也可以使用 man mysql 来快速了解概述。 - feeela
这里提醒一下Mac用户,如果你修改了root密码,此登录命令将使用你在MySQL中设置的密码,而不是Mac的root密码。 - Kelsey Hannan
@Kelseydh 这对于任何操作系统都是正确的,不仅仅是Mac。 - feeela

3
当使用命令行登录MYSQL时,如果有密码,您还必须指定密码。您的错误消息告诉您用户“root”附带了一个密码。并不一定是在安装easyPHP时密码是“YES”,它应该提供您默认密码或允许您输入自己选择的密码。
根据easyPHP的文档:
[v1.6] 我的脚本在1.5中完美运行,但现在我得到这个错误:Warning: Forbidden access for user: 'user@localhost' (password: YES) when I want to connect to MySql.
只有没有密码的root用户才有连接到数据库的权限。要么修改脚本以使用它,要么添加您需要的用户(phpMyAdmin/用户和权限:有关更多信息,请参见phpMyAdmin的文档)。
mysql -u root -p 现在,如果更改了root用户密码,则需要在提示时指定密码。否则,只需在键盘上按即可。
如果您忘记了root用户的密码并已更改了它,则随后必须重新安装easyPHP。

如果您忘记了root密码并已更改它,则必须随后重新安装easyPHP。如果您忘记了MySQL root密码,则需要重新安装MySQL,而不是easyPHP... - feeela
使用easyPHP,我认为您不能只重新安装MySQL。大多数套件不会单独安装PHP、MySQL等,而是作为一个集体组进行安装。如果您只是单独安装了MySQL、PHP和Apache,那么是的,您只需要重新安装MySQL。在用户的情况下,他将MySQL作为easyPHP的一部分安装。 - Paul Williams

0

在Mac Mac El Capitan上修改mysql-5.7.10

  • sudo /usr/local/mysql/support-files/mysql.server stop
  • sudo mysqld_safe --skip-grant-tables

    现在在终端上打开新的窗口/选项卡并键入

  • "mysql -u root"
  • use mysql
  • update user set authentication_string=password('yourpassword') where user='root';

0
agk-hp:~/$mysql
ERROR 1045 (28000): Access denied for user 'greg'@'localhost' (using  password: NO)
agk-hp:~/$sudo cat /etc/mysql/debian.cnf|grep password
 password = t7753my3D2x4yfQm

agk-hp:~/$mysql -u debian-sys-maint -p  
Enter password: {t7753my3D2x4yfQm} 
Welcome to the MySQL monitor.  Commands end with ; or \g.

mysql> use mysql;

mysql> grant all privileges on *.* to 'root'@'localhost';
mysql> grant all privileges on *.* to 'greg'@'localhost';


agk-hp:~/$mysql
mysql>

也许给你的答案加点细节。 - CaptainBli

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