我尝试过从Google获得的各种选项但无法为root
设置密码。我可以在没有任何密码的情况下登录,但是Java驱动程序需要密码,所以我必须设置它。
在我上一次尝试中,我在MySQL控制台中尝试了以下命令:
SET PASSWORD FOR root@localhost=PASSWORD('abc123');
但我收到了以下错误:
ERROR 1133 <42000>: Can't find any matching row in the user table
答案 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@localhost
与root@127.0.0.1
或root@%
不是同一个用户(例如)。可能是您没有尝试为其设置密码的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;