无法在mysql中为root @ localhost设置密码

时间:2014-05-19 13:51:03

标签: mysql

我尝试过从Google获得的各种选项但无法为root设置密码。我可以在没有任何密码的情况下登录,但是Java驱动程序需要密码,所以我必须设置它。

在我上一次尝试中,我在MySQL控制台中尝试了以下命令:

SET PASSWORD FOR root@localhost=PASSWORD('abc123');

但我收到了以下错误:

ERROR 1133 <42000>: Can't find any matching row in the user table

3 个答案:

答案 0 :(得分:2)

在终端中输入以下行。

停止MySQL服务器。

  

sudo /etc/init.d/mysql stop

启动mysqld配置。 (在安全模式下)

sudo mysqld_safe --skip-grant-tables & 

以root身份登录MySQL。

mysql -u root mysql

用新密码替换YOURNEWPASSWORD!

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root'; 
FLUSH PRIVILEGES; 
exit;
  

sudo /etc/init.d/mysql start

参考:

http://www.rackspace.com/knowledge_center/article/mysql-resetting-a-lost-mysql-root-password https://help.ubuntu.com/community/MysqlPasswordReset

答案 1 :(得分:0)

可能是root的用户localhost不存在。添加此帐户可以通过以下方式完成:

CREATE USER 'root'@'localhost' IDENTIFIED BY 'abc123';

答案 2 :(得分:0)

在MySQL中,每个用户都由用户名和主机唯一标识,这意味着root@localhostroot@127.0.0.1root@%不是同一个用户(例如)。可能是您没有尝试为其设置密码的root@localhost用户。

仔细检查mysql.user表中实际拥有的用户:

SELECT * FROM mysql.user WHERE user = 'root';

如果您想创建缺少的用户,请改用以下语句:

CREATE USER root@localhost IDENTIFIED BY 'abc123';
GRANT ALL PRIVILEGES ON *.* TO root@localhost;