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密码的提示,应该接受它。