MySql服务器无法识别正确的密码

我在Ubuntu 14.04 LTS上安装了MySql服务器。 我也有过以前的经验。

但每当我登录时,使用mysql -u root -p并输入密码后会说:

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

我输入了正确的密码。 几天发生了同样的事情,但后来我完全删除了mysql并重新安装了它。

我也尝试重启mysql服务器,但没有帮助!

有人可以帮忙吗?

请务必阅读/usr/share/doc/ package-name /中已安装的软件包的内容。 它们包含有关使用和管理包的重要信息。

因此,对于mysql-server-5.5 ,/ /usr/share/doc/mysql-server-5.5/README.Debian.gz mysql-server-5.5 /usr/share/doc/mysql-server-5.5/README.Debian.gz有重要信息。 因为它是gzip ped,所以使用zmore阅读它很方便。

在那里你可以看到你可以使用debian-sys-maint用户访问数据库进行管理。 正如root使用/etc/mysql/debian.cnf配置文件一样以该用户身份登录。 请注意,除非您在debian.cnf文件中更改密码,否则切勿更改该用户密码。 如果没有,mysql将停止工作。

因此,要更改root用户的密码,请尝试此操作。

 $ sudo mysql --defaults-file=/etc/mysql/debian.cnf mysql> UPDATE mysql.user SET Password=PASSWORD('*secret*') WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> quit; $ mysql -u root -p 

如果您可以使用*secret*密码以root用户身份登录,则您已设法更改root的密码。

请注意, debian-sys-maint用户的这种使用仅适用于基于Debian的发行版。

另请注意,如果您还安装了dbconfig-common软件包并设置为存储root密码(请参阅/etc/dbconfig/config ),则需要重新配置该软件包,以便知道管理其他软件包的数据库的密码。

最后,还可以在Debian Wiki和免费的系统管理员手册中阅读好的信息

首先停止mysql服务器

  sudo service mysql stop 

运行以下将再次启动服务器的命令,并跳过存储密码的授权表。

  mysqld_safe --skip-grant-tables 

Mysql服务器现在应该启动。 接下来我们在没有密码的情况下登录root。

  mysql -u root 

然后按Enter键

现在我们在mysql中运行以下命令来重置密码

  update user set Password=PASSWORD('new-password') where user='root'; flush privileges; exit; 

现在重启mysql服务器

  sudo service mysql restart 

您现在应该可以使用刚刚设置的密码登录

  mysql -u root -p 

按回车键,您应该收到root密码的提示,应该接受它。