linux系统下mysql8.0忘记密码,该怎么拌?

1.使用命令“vi /etc/my.cnf”文件

2.在[mysqld]最下面添加“skip-grant-tables”,跳过权限的检查

3.输入“systemctl start mysqld"重启mysqld

4.登录MySQL服务“mysql -uroot -p”

5.使用命令 "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码' "修改密码。

6.使用命令“flush privileges”更新

7.最后,输入exit退出mysql,然后按照步骤一输入“vi /etc/my.cnf”进入配置文件给“skip-grant-tables”给它前面加上#将其注释掉就好了!

8.简单的修改不同版本的密码,以下为5.7版本和8.0版本

如果你使用的是MySQL 8.0版本,应该使用以下命令:

update user set authentication_string=password('your_new_password') where user='root';

如果你使用的是MySQL 5.7版本,应该使用以下命令:

update user set password=PASSWORD('your_new_password') where User='root'
### 重置 Linux 系统MySQL 8.0 的 Root 用户密码 #### 方法一:通过 `mysqld --skip-grant-tables` 方式重置密码 当尝试使用 `mysqld --skip-grant-tables` 启动 MySQL 并连接到服务器时遇到错误 ERROR 2003 (HY000)[^1],这通常意味着 MySQL 服务未能正常启动。解决此问题的方法如下: 停止当前正在运行的 MySQL 服务: ```bash sudo systemctl stop mysqld ``` 确保没有任何其他 MySQL 进程在后台运行: ```bash ps aux | grep mysql kill -9 <PID> ``` 以跳过权限表的方式启动 MySQL: ```bash sudo mysqld_safe --skip-grant-tables & ``` 此时可以无需密码登录 MySQL 数据库并更改 root 密码。 #### 修改 Root 用户密码 一旦成功进入 MySQL 控制台,则可按照下面 SQL 命令来更新 root 账户的新密码[^4]: ```sql FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswordHere'; ``` 对于远程访问的情况,还需要设置 `'root'@'%'` 来允许来自任何主机名或 IP 地址的连接请求: ```sql CREATE USER 'root'@'%' IDENTIFIED BY 'NewPasswordHere'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES; ``` 最后记得重启 MySQL 服务使新配置生效,并移除之前为了绕过验证而做的临时改动。 #### 方法二:编辑 my.cnf 文件方式重置密码 另一种更安全的做法是在 `/etc/my.cnf` 中添加 `skip-grant-tables` 参数让 MySQL 忽略授权表从而实现免密登陆[^3]: 打开配置文件进行编辑: ```bash sudo vim /etc/my.cnf ``` 找到 `[mysqld]` 部分并在其下方加入一行 `skip-grant-tables`: ```ini [mysqld] ... skip-grant-tables ``` 保存修改后的文件(`:wq`),接着重新加载 MySQL 服务使其应用新的参数设定: ```bash sudo systemctl restart mysqld ``` 之后就可以像上面提到的一样去改变 root 密码了。完成操作后务必删除该选项以免造成安全隐患!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值