centos7:mysql数据库(关于修改密码)

本文详细介绍如何在忘记密码的情况下重置MySQL数据库的root用户密码,包括关闭服务、以忽略授权表方式启动、修改密码及重启服务的步骤。同时,提供了多种修改密码的方法,如使用mysqladmin命令、setpassword命令、直接编辑user表和使用alter user修改。

1、关闭服务
kill `pgrep mysqld`

2、以忽略授权表的方式启动服务
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-table &
mysqld_safe --user=mysql --skip-grant-table &
注:--skip-grant:跳过权限表

3、以root用户登录并修改密码
/usr/local/mysql/bin/mysql
mysql
select host,user,password from mysql.user; # 查询用户和密码,mysql.user存放用户和密码的表
update mysql.user set password=password('456') where host='localhost' && user='root';

4、重启服务
/usr/local/mysql/bin/mysqld_safe --user=mysql &
mysqld_safe --user=mysql &

修改密码
1、使用mysqladmin命令
mysqladmin -u root -p123 password '456'
2、使用set password命令
set password for 'root'@'localhost'=password('1');
3、使用update直接编辑user表
update mysql.user set password=password('2') where user='root' and host='localhost';
4、使用alter user修改
alter user root@'localhost' identified by 'test1234';
假如已经修改mysql下的user表root账号下的host为%时,需要用下面的语句
alter user root@'%' identified by 'test1234';

flush privileges;

### 如何在 CentOS 7 中重置 MySQL Root 密码 #### 停止 MySQL 服务 为了安全地重置密码,需先停止正在运行的 MySQL 或 MariaDB 服务。这可以通过 `systemctl` 工具来完成。 ```bash sudo systemctl stop mysqld.service ``` #### 启动 MySQL 跳过权限表 接着以跳过授权表的方式启动 MySQL 数据库服务器,这样可以绕过正常的认证过程: ```bash sudo mysqld_safe --skip-grant-tables & ``` 此命令会在后台启动 MySQL 实例并忽略访问控制设置[^1]。 #### 登录到 MySQL 控制台 此时可以直接连接至 MySQL 不需要提供任何凭证信息: ```bash mysql -u root ``` 一旦进入 MySQL 提示符下,则可继续下一步操作[^2]。 #### 修改 Root 用户密码 对于不同版本的 MySQL 可能存在差异化的指令集用于更新管理员账户的信息。针对较新的发行版如 MySQL 8.0 推荐采用如下 SQL 语句: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswordHere!'; FLUSH PRIVILEGES; ``` 上述代码片段将把本地主机上的 root 用户的新密码设为 "NewPasswordHere!" 并刷新权限缓存以便立即生效[^3]。 另一种方法涉及创建一个包含必要变更脚本的小型 .sql 文件,并通过特定参数让 MySQL 在重启时自动执行它。例如,在 `/tmp/` 下建立名为 `mysql_root_password.sql` 的文件,其内容应为: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'AnotherSecurePasswd!'; ``` 随后利用下面这条 shell 命令行组合实现无交互式的密码更改流程: ```bash cat >/tmp/mysql_root_password.sql <<EOL ALTER USER 'root'@'localhost' IDENTIFIED BY 'AnotherSecurePasswd!'; EOL sudo mysqld --user=mysql --init-file=/tmp/mysql_root_password.sql & rm /tmp/mysql_root_password.sql ``` 这种方法同样能够达到目的而且更加自动化一些[^4]。 #### 验证新密码有效性 最后一步是要确认刚刚所做的改动确实有效。为此只需再次尝试用新设定好的凭据去登陆即可: ```bash mysql -uroot -p ``` 当被提示输入密码的时候就键入刚才所定义的那个字符串看看能否顺利进入到数据库管理界面内。 #### 正常方式重新启动 MySQL 服务 完成了以上所有步骤之后记得要按照常规模式开启 MySQL 服务而不是之前那种特殊状态下的做法: ```bash sudo systemctl start mysqld.service ``` 并且建议检查一下 SELinux 是否处于宽容(permissive)而非强制(enforcing),因为后者可能会阻止某些操作正常工作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值