原文链接:https://www.chenweiliang.com/cwl-30369.html
当你尝试使用 MySQL 数据库时,可能会遇到以下错误消息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
1 首先停止你的服务器
service mysql stop
mkdir /var/run/mysqld
3 授予 MySQL 使用创建的目录的权限。
chown mysql: /var/run/mysqld
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root mysql
or
mysql -u root mysql
停止 MySQL 服务器,然后使用--skip-grant-tables
选项重新启动它。
这使任何人都可以在没有密码和所有权限的情况下进行连接,并禁用帐户管理语句,例如ALTER USER
和SET PASSWORD
。
因为这是不安全的,你可能希望--skip-grant-tables
结合使用--skip-networking
以防止远程客户端连接。
使用mysql客户端连接到MySQL服务器;不需要密码,因为服务器是用以下命令启动的--skip-grant-tables
:
shell> mysql
在 mysql 客户端中,告诉服务器重新加载授权表,以便帐户管理语句起作用:
mysql> FLUSH PRIVILEGES;
然后修改'root'@'localhost'
账号密码。将密码替换为你要使用的密码。要更改具有不同主机名部分的根帐户的密码,请修改使用该主机名的说明。
MySQL 5.7.6 及更高版本:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 及更早版本:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
或者直接在用户表上:
UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
XAMPP 专用
停止 MySQL 服务。打开命令窗口。切换到 XAMPP MySQL 目录:
> cd \xampp\mysql\bin\
在没有安全保护的情况下运行服务(注意你运行的是 mysqld,而不是 mysql):
> mysqld.exe --skip-grant-tables
MySQL 服务将在此窗口中运行,因此打开另一个命令窗口并切换到 XAMPP MySQL 目录:
> cd \xampp\mysql\bin\
运行 MySQL 客户端:
> mysql
更新密码:
mysql> UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';
退出 MySQL:
mysql> \q
使用任务管理器取消仍在运行的mysqld.exe。重启mysql服务。
欢迎转载《MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost'如何解决》
欢迎分享本文链接:https://www.chenweiliang.com/cwl-30369.html
网站地址:https://www.chenweiliang.com/
欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel
没有评论:
发表评论