无法为设置密码root@localhost在mysql中
我尝试了从Google获得的各种选项,但无法为无法为设置密码root@localhost在mysql中,mysql,Mysql,我尝试了从Google获得的各种选项,但无法为根目录设置密码。我可以不使用任何密码登录,但是Java驱动程序需要密码,所以我必须设置密码 在上一次尝试中,我在MySQL控制台中尝试了以下命令: SET PASSWORD FOR root@localhost=PASSWORD('abc123'); 但我犯了以下错误: ERROR 1133 <42000>: Can't find any matching row in the user table 错误1133:在用户表中找不到任何
根目录设置密码。我可以不使用任何密码登录,但是Java驱动程序需要密码,所以我必须设置密码
在上一次尝试中,我在MySQL控制台中尝试了以下命令:
SET PASSWORD FOR root@localhost=PASSWORD('abc123');
但我犯了以下错误:
ERROR 1133 <42000>: Can't find any matching row in the user table
错误1133:在用户表中找不到任何匹配行
可能是localhost
的用户root
不存在。可通过以下方式添加此帐户:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'abc123';
在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;
在终端中输入以下行
停止MySQL服务器
sudo/etc/init.d/mysql stop
启动mysqld配置。(在安全模式下)
以root用户身份登录MySQL
mysql -u root mysql
用新密码替换新密码
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
exit;
sudo/etc/init.d/mysql start
参考文献:
您以什么用户身份登录?root?是的,我以root身份登录,但没有密码。还有一件事我忘记了,我已经安装了wampthanks,但是这个命令导致了另一个错误:拒绝访问:您需要(至少一个)创建用户权限来执行此操作。谢谢!更新mysql
user
表直接对我有效,而SET PASSWORD for..
无法找到匹配的行。
UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
exit;