# 重置虚拟机MySQL-root密码?
# 环境、库:centos7.5、mysql8.0.33
### 重置MySQL密码、或者重装MySQL
按查询到的方法
需要在 /etc/my.cnf文件中【mysqld]块中添加skip-grant-tables,来跳过无密码登录。
但是登录后mysql库的user查询到的信息
修改后又没法登录,改的密码和mysqld.log中的密码均无法登录数据库。
[root@hadoop100 ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/man/man1/mysql.1.gz
还有就是我的停止和重启都是提示这个
service mysqld stop/start
[root@hadoop100 ~]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service
跳过无密码登录是一种临时的解决方案,通常用于在忘记MySQL的root密码或无法正常登录MySQL的情况下,通过修改MySQL的密码来进行身份验证。
在添加了 skip-grant-tables 配置后,MySQL将会跳过用户验证过程,允许任何人以任何身份登录到MySQL服务器。但是这样的设置并不能用于修改MySQL的密码。一旦你修改了密码并重启了MySQL服务器,skip-grant-tables 配置将不再生效。
如果需要修改MySQL的密码,可以使用以下步骤:
停止MySQL服务器的运行。
找到MySQL服务器的配置文件 my.cnf(在 /etc/my.cnf 或者 /etc/mysql/my.cnf)。确保你是以管理员身份打开该文件。
在 [mysqld] 块中添加 skip-grant-tables 配置,保存文件并关闭。
启动MySQL服务器。
打开终端或命令提示符,使用以下命令连接到MySQL服务器(不需要密码):
mysql -u root
进入MySQL命令行后,使用以下命令修改密码(假设要将密码修改为 newpassword):
UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
如果你使用的是MySQL 8.0及以上版本,可以使用以下命令来修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
执行以下命令刷新权限并退出MySQL命令行:
FLUSH PRIVILEGES;
exit;
停止MySQL服务器的运行。
编辑 my.cnf 文件,将之前添加的 skip-grant-tables 配置删掉。
启动MySQL服务器。
【相关推荐】
删除或注释刚才/etc/my.cnf
文件最后的skip-grant-tables
vim /etc/my.cnf 注释完毕后,保存退出
重启mysql服务, 提示输入密码时直接敲回车,因为我们刚才已经将密码置为空了。
systemctl restart mysqld
mysql -uroot -p