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

我是一名电气工程师,主要玩弄电力系统而不是编程。最近,我一直在按照一本手册在Ubuntu上安装一套软件。实际上,我对mySQL一点都不了解。我在Ubuntu上做了以下安装。

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

然后我做了

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

我最后得到了以下错误信息。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我怎样才能修复它并继续?

解决办法

注意:对于MySQL 5.7+,请参见本问题的[@Lahiru的回答]。 这包含了更多的最新信息。

[来自@Lahiru的回答]。/a/42967789

对于MySQL < 5.7:

默认的根密码是空白(即空字符串)而不是`根'。所以你可以直接以下列身份登录

mysql -u root

显然,你应该在安装后改变你的根密码

mysqladmin -u root password [newpassword]

在大多数情况下,在广泛使用数据库之前,你也应该设置个人用户账户。

评论(14)

我能够通过执行以下语句来解决这个问题

sudo dpkg-reconfigure mysql-server-5.5

这将改变根密码。

评论(7)

如果问题仍然存在,请尝试强制改变密码。

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

设置新的MySQL根用户密码

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

停止MySQL服务器。

/etc/init.d/mysql stop

启动MySQL服务器并进行测试。

mysql -u root -p
评论(6)