前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)

Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)

作者头像
老K博客
发布2023-12-18 14:53:09
1.3K0
发布2023-12-18 14:53:09
举报
文章被收录于专栏:老K博客

Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)

  1. ????一、知道密码情况--修改root密码 ⛳ 1.1 方式1:alter 命令修改 ⛳ 1.2 方式2:set password命令修改
  2. ????二、忘记密码情况-修改root密码 ⛳ 2.1 方式1:--init-file选项启动mysql 2.1.1 ???? 停止mysql服务 2.1.2 ???? 创建mysql-init-file.txt文件 2.1.3 ???? init-file的权限(最好赋权一下) 2.1.3 ???? 使用--init-file选项启动mysql服务 2.1.4 ???? 新密码连接测试(密码:Zyl@123321) 2.1.5 ????停止init-file启动的mysql进程并正常启动 2.1.5 ???? 登录之后即可在mysql命令行修改为其他常用密码(此时知道密码情况--修改root密码) ⛳ 2.2 方式2:使用skip-grant-tables 参数,跳过授权验证 2.2.1 ???? 停止mysql服务 2.2.2 ???? 通过--skip-grant-tables 参数启动mysql服务 2.2.3 ???? 或者通过my.cnf 文件配置skip-grant-tables 参数启动mysql服务 ????三、总结—温故知新

????一、知道密码情况–修改root密码 ⛳ 1.1 方式1:alter 命令修改 ???? 通过alter user root identified by '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql>  alter user root@'localhost' identified by 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)

mysql>...

⛳ 1.2 方式2:set password命令修改 ???? 通过set password for 用户名@'用户地址' = '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql> set password for 'root'@'localhost' = 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)

mysql> ...

????二、忘记密码情况-修改root密码 ⛳ 2.1 方式1:--init-file选项启动mysql 2.1.1 ???? 停止mysql服务

代码语言:javascript
复制
[root@db-server ~]# systemctl stop mysqld
[root@db-server ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2023-06-07 11:11:00 CST; 51min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2450 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 2426 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2450 (code=exited, status=1/FAILURE)
   Status: "Server shutdown complete"
    Error: 13 (Permission denied)

Jun 07 11:11:00 db-server systemd[1]: Starting MySQL Server...
Jun 07 11:11:00 db-server systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Jun 07 11:11:00 db-server systemd[1]: Failed to start MySQL Server.
Jun 07 11:11:00 db-server systemd[1]: Unit mysqld.service entered failed state.
Jun 07 11:11:00 db-server systemd[1]: mysqld.service failed.
[root@db-server ~]# ...

2.1.2 ???? 创建mysql-init-file.txt文件

代码语言:javascript
复制
[root@db-server home]# touch init-file
[root@db-server home]# vi init-file
[root@db-server home]# cat init-file 

alter user 'root'@'localhost' identified by 'Zyl@123321';

[root@db-server home]# pwd
/home
[root@db-server home]# ...

2.1.3 ???? init-file的权限(最好赋权一下)

代码语言:javascript
复制
[root@db-server home]# chmod 777 init-file
[root@db-server home]# chown mysql:mysql init-file
[root@db-server home]# ll
total 4
-rwxrwxrwx 1 mysql mysql 58 Jun  7 15:56 init-file
[root@db-server home]# ...

2.1.3 ???? 使用–init-file选项启动mysql服务

代码语言:javascript
复制
###启动命令####
mysqld --init-file=/home/init-file --user=mysql &

[root@db-server ~]# mysqld --init-file=/home/init-file --user=mysql &
[1] 1983
[root@db-server ~]# ...

2.1.4 ???? 新密码连接测试(密码:Zyl@123321) mysql -u root -pZyl@123321

06101138512872
06101138512872

2.1.5 ????停止init-file启动的mysql进程并正常启动

代码语言:javascript
复制
[root@db-server home]# ps -ef | grep mysql
mysql      1983      1  1 16:28 ?        00:00:13 mysqld --init-file=/home/init-file --user=mysql
root       2104   2048  0 16:50 pts/1    00:00:00 systemctl start mysqld
mysql      2134      1  1 16:50 ?        00:00:00 /usr/sbin/mysqld
root       2150   2048  0 16:50 pts/1    00:00:00 grep --color=auto mysql
[root@db-server home]# kill -9 1983...
06101140119632
06101140119632
代码语言:javascript
复制
####正常启动mysql###
[root@db-server home]# systemctl start mysqld
[root@db-server home]# systemctl status mysqld...
306101141337145
306101141337145

2.1.5 ???? 登录之后即可在mysql命令行修改为其他常用密码(此时知道密码情况–修改root密码) ???? 通过alter user root identified by '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql>  alter user root@'localhost' identified by 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)
mysql> 


mysql>...

???? 通过set password for 用户名@'用户地址' = '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql> set password for 'root'@'localhost' = 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)

mysql> ...

⛳ 2.2 方式2:使用skip-grant-tables 参数,跳过授权验证 --skip-grant-tables:跳过授权表认证 --skip-networking:加了跳过授权表选项后所有的人都可以无密码登录,这是很不安全的,此选项不监听网络,防止恶意登录。 2.2.1 ???? 停止mysql服务

代码语言:javascript
复制
[root@db-server ~]# systemctl stop mysqld...
306101143254507
306101143254507

2.2.2 ???? 通过--skip-grant-tables 参数启动mysql服务

代码语言:javascript
复制
[root@db-server ~]# sudo mysqld --skip-grant-tables --user=mysql &
[1] 2531
[root@db-server ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.32 MySQL Community Server - GPL

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ...
306101144503735
306101144503735

2.2.3 ???? 或者通过my.cnf 文件配置skip-grant-tables 参数启动mysql服务 注:修改完密码之后,去除该参数--以便保障数据库安全性。

代码语言:javascript
复制
[root@db-server ~]# vi /etc/my.cnf

####添加内容:
skip-grant-tables...
54468452
54468452

启动mysql

代码语言:javascript
复制
[root@db-server home]# systemctl start mysqld...
6838283
6838283

???? 通过alter user root identified by '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql>  alter user root@'localhost' identified by 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)
mysql> 


mysql>...

???? 通过set password for 用户名@'用户地址' = '新密码';

代码语言:javascript
复制
mysql> use mysql;

mysql> set password for 'root'@'localhost' = 'Zyl@123456';
Query OK, 0 rows affected (0.01 sec)

mysql> ...

注:修改完密码之后,去除 skip-grant-tables 参数--以便保障数据库安全性。

????三、总结—温故知新 ❓ 本篇文章详细介绍了在linux中忘记mysql的root用户密码修改步骤。 ❓ 温馨提示:不管是工作中,还是学习中,要养成备份的习惯,不要觉得太麻烦,或者觉得没必要,不要存在侥幸心理。 ❓ 人有的时候总觉得很多事可以偷懒,但是有时候又要为自己的偷懒付出更大的代价。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年06月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档