2023年4月8日星期六

MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost'如何解决

原文链接:https://www.chenweiliang.com/cwl-30369.html

当你尝试使用 MySQL 数据库时,可能会遇到以下错误消息:


MySQL ERROR 1045 (28000): Access denied for user


ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


1 首先停止你的服务器



service mysql stop


2 制作MySQL服务目录。




mkdir /var/run/mysqld





3 授予 MySQL 使用创建的目录的权限。



chown mysql: /var/run/mysqld


4 启动MySQL,无需权限和网络检查。




mysqld_safe --skip-grant-tables --skip-networking &


5 不用任何密码登录到你的服务器。




mysql -u root mysql
or
mysql -u root mysql


停止 MySQL 服务器,然后使用--skip-grant-tables选项重新启动它。


这使任何人都可以在没有密码和所有权限的情况下进行连接,并禁用帐户管理语句,例如ALTER USERSET 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

没有评论:

发表评论