Linux下MySQL 8.0 修改密码

本文介绍了一种临时禁用MySQL密码验证的方法,通过修改配置文件并重启服务来实现免密码登录,随后提供了如何利用此机会重置管理员密码的步骤。

1、修改配置文件

vim /etc/my.conf

在[mysqld] 下面新增一行

skip-grant-tables

 按键盘的ESC键(退出输入模式)再按键盘的" : " + "WQ" (冒号 加 W 加 Q) 回车,退出编辑模式。

这样我们的mysql就不会验证密码了。

2 、重启服务,让修改的文件生效

接下来重启MySQL服务,命令如下:

systemctl restart mysqld

 

3、进入MySQL将验证字段设置为空

重新进入MySQL(这时无需输入密码了)

mysql -uroot -p  

同样出现让你输入Password的字样,不过不用管他,直接按回车。

这样进入了MySQL

1:选择数据库

use mysql

现在将修改密码为空(网上说的password在MySQL8.0里不存在这个字段,所以我找到了个新方法)

2:将密码置为空

update user set authentication_string = ‘’ where user = ‘root’;

引用:https://blog.youkuaiyun.com/u013421629/article/details/126410682

回车生效, 

退出,输入:

exit;

 

 4、去除免密码登录

再次打开配置文件

vim /etc/my.cnf

 删除掉刚刚添加的 skip-grant-tables 字段

1. 先按键盘的insert键 进入输入模式

2. 操作上下光标移至 skip-grant-tables字段最左边,按键盘DELETE键 删除。

3. 同样保存退出(按:+W + Q)

5、重启服务 使得配置文件生效

systemctl restart mysqld

6、修改密码为你的密码

 再次输入 mysql -uroot -p 

此时输入回车(刚刚我们已经将密码修改为空)

输入如下命令

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

输入 exit 退出,重启生效。 

### LinuxMySQL 8.0 忘记 root 密码的重置方法 在 Linux 系统下重置 MySQL 8.0 的 root 密码,可以按照以下步骤完成。以下是详细的操作流程: #### 1. 修改 MySQL 配置以允许免密码登录 编辑 MySQL 的配置文件,添加 `skip-grant-tables` 参数以跳过权限验证。此操作允许用户无需密码即可进入 MySQL。 ```bash sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在 `[mysqld]` 段落中添加以下内容: ```plaintext skip-grant-tables ``` 保存并退出编辑器。 #### 2. 重启 MySQL 服务 修改配置后,需要重启 MySQL 服务以使更改生效。 ```bash sudo service mysql restart ``` #### 3.密码登录 MySQL 并重置密码 通过终端直接登录 MySQL 数据库(由于启用了 `skip-grant-tables`,此时无需输入密码)。 ```bash mysql ``` 进入 MySQL 后,执行以下命令以切换到 `mysql` 数据库: ```sql use mysql; ``` 将 root 用户的密码设置为空(如果需要清空旧密码): ```sql update mysql.user set authentication_string='' where user='root'; flush privileges; // 刷新权限表[^1] ``` 然后为 root 用户设置新密码。根据 MySQL 8.0 的特性,推荐使用 `ALTER USER` 命令设置密码,并指定身份验证插件为 `mysql_native_password`: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; // 替换 new_password 为实际密码[^4] flush privileges; // 刷新权限表[^2] ``` #### 4. 还原配置并重启服务 完成密码修改后,需要移除 `skip-grant-tables` 参数并重启 MySQL 服务以恢复正常模式。 ```bash sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ``` 删除之前添加的 `skip-grant-tables` 行,保存并退出编辑器。随后重启 MySQL 服务: ```bash sudo service mysql restart ``` #### 5. 测试新密码 尝试使用新密码登录 MySQL 以确认修改成功: ```bash mysql -u root -p ``` 输入新设置的密码进行验证。 --- ### 注意事项 - 如果上述方法无法正常工作,可能是由于主机名绑定问题导致。可以尝试将 `'root'@'localhost'` 替换为 `'root'@'%'`[^3]。 - 若密码过于简单,可能会触发 MySQL密码策略限制,导致报错。可以通过调整 MySQL密码强度策略来解决: ```sql SET GLOBAL validate_password.policy=LOW; // 设置较低的密码强度要求[^5] ``` --- ### 示例代码 以下是一个完整的脚本示例: ```bash # 修改配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 添加 skip-grant-tables # 重启服务 sudo service mysql restart # 登录 MySQL mysql # 执行 SQL 命令 use mysql; update mysql.user set authentication_string='' where user='root'; flush privileges; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; flush privileges; # 退出 MySQL exit; # 还原配置 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # 删除 skip-grant-tables # 重启服务 sudo service mysql restart ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值