linuxmysql修改密码

本文介绍了一种在忘记MySQL root密码后重新设置的方法。通过编辑my.cnf文件加入skip-grant-tables选项来绕过密码验证,然后更新mysql.users表中的authentication_string字段以设置新密码,并刷新权限。

针对忘记root密码方式:
1、编辑/etc/my.cnf文件

vi /etc/my.cnf

2、在[mysqld]下面添加一条命令:skip-grant-tables


3、输入:wq!(保存修改并退出)
4、开始修改root密码

4.1 进入MySql控制台(直接按回车,这时不需要输入root密码。)
mysql -uroot -p
4.2 切换到mysql数据库
mysql>use mysql;
4.3 修改mysql数据库中root的密码
mysql> update user set password=password(“填入新密码”) where user=‘root’;

注意:
如果4.3报错

报错信息:
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原因:
    是从mysql 5.7开始,password字段被替换为了authentication_string
修改:
    update user set authentication_string=password('填入新密码”') where user='root';

4.4 刷新mysql权限
mysql> flush privileges;
4.5 退出
mysql> exit;

5、再次vi /etc/my.cnf。把skip-grant-tables删除掉。保存退出。完成MySql Root密码修改

### 如何在 Linux 上更改 MySQL 用户密码 #### 使用 SQL 语句直接更改密码 可以通过登录到 MySQL 客户端并执行 `SET PASSWORD` 命令来更改 root 或其他用户的密码。此方法适用于已知当前密码的情况。 ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); ``` 上述命令会将 `root` 用户的密码更改为指定的新密码[^1]。 --- #### 忘记密码时通过更新用户表修改密码 如果忘记了 root 用户的密码,则可以按照以下方式重置: ##### 1. 停止 MySQL/MariaDB 服务 停止正在运行的 MySQL 或 MariaDB 服务: ```bash systemctl stop mariadb ``` ##### 2. 跳过权限表启动 MySQL 使用 `--skip-grant-tables` 参数跳过权限表启动 MySQL,这样可以在无需验证的情况下访问数据库: ```bash mysqld_safe --skip-grant-tables & ``` 此时,MySQL 将以前台模式运行,并允许无密码访问[^2]。 ##### 3. 登录 MySQL 并修改密码 打开新的终端窗口,直接登录 MySQL 客户端(无需提供密码): ```bash mysql -u root ``` 进入客户端后,切换至 `mysql` 数据库并更新 `user` 表中的密码字段: ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; ``` 注意:MariaDB 和较新的 MySQL 版本可能不再支持 `password()` 函数,需改用 `authentication_string` 字段[^2]。 ##### 4. 关闭特殊模式下的 MySQL 实例 结束由 `mysqld_safe` 启动的服务实例: ```bash pkill -9 mysqld ``` ##### 5. 正常重启 MySQL 服务 恢复正常的 MySQL 运行状态: ```bash systemctl start mariadb ``` ##### 6. 验证新密码 尝试使用新密码连接到 MySQL: ```bash mysql -u root -p ``` --- ### 注意事项 - 如果使用的 MySQL 是最新版本 (8.x),则需要替换 `PASSWORD()` 函数为 `ALTER USER` 语法: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` - 对于某些发行版(如 Ubuntu),默认安装的是 MariaDB 替代品而非官方 MySQL,请根据实际情况调整配置文件路径和服务名称[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值