良许Linux教程网 干货合集 Linux系统修改MySQ数据库密码

Linux系统修改MySQ数据库密码

大家有没有出现过忘记 MySQL 登录密码的情况呀?反正我是遇到过,有的时候需要用的账号密码太多,难免会出现记忆错乱的情况,基于此,那么本篇文章就来教大家修改数据库密码的方法。

首先在正式说方法之前,这里需要大家知道的两个参数如下:

--skip-grant-tables
#跳过授权表

--skip-networking
#跳过TCP/IP连接   
#限制了远程登陆,只允许使用socket方式登录,避免造成安全问题

这两个参数大家一定要记住,非常重要。数据库密码忘记时会显得尤其重要,那么接下来就为大家介绍几种忘记数据库密码时如何登录并重新设置密码。

方法一:

可以在启动数据库的时候,加上 --skip-grant-tables

$ service mysqld start --skip-grant-tables --skip-networking

加上这个参数,在启动数据库的时候就会跳过授权表,也就是说当你登录时,他不会跟数据库中的 user 表中的数据进行比对,达到直接可以登录的效果。

image-20201121123338064
image-20201121123338064

方法二:

  1. 关闭数据库

    systemctl stop mysqld
  2. 使用安全模式启动

    mysqld_safe --skip-grant-tables --skip-networking &
    或者
    service mysqld start --skip-grant-tables --skip-networking
  3. 登录数据库并修改密码

    $ mysql   
    //无需密码就可以登录,因为是使用安全模式启动的
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 9
    Server version: 10.3.17-MariaDB MariaDB Server

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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


    MariaDB [(none)]> create user root@'%' identified by 'redhat';
    ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement

    MariaDB [(none)]> flush privileges;  
    //刷新授权表,因为上一句报错是因为目前处于安全模式中,无法读取到授权表,因此也就无法修改密码
    Query OK, 0 rows affected (0.003 sec)

    MariaDB [(none)]> create user root@'%' identified by 'redhat';
    Query OK, 0 rows affected (0.000 sec)
    //此处可以使用create,也可以使用alter,alter本来就可以用来修改密码

  4. 重启数据库到正常模式

    $ service mysqld rstart
    或者
    $ systemctl restart mysqld
    image-20201121124239570
    image-20201121124239570

启动过程:

image-20201121124343969
image-20201121124343969

方法三:

这种方法就是通过修改配置文件来实现,可以将 --skip-grant-tables --skip-networking 直接添加到 /etc/my.cnf 配置文件中,如下:

[mysqld]skip-grant-tables
skip-networking

然后接下重启一下数据库,重启数据库会重新读取配置文件,所以无需密码可以直接登录。

$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> 
image-20201121124611086
image-20201121124611086

以上三种方法都可以达到修改数据库密码的目的,三种方法都比较简单,主要都是围绕 --skip-grant-tables --skip-networking 这两个参数使用的。感兴趣的朋友可以在测试机上假装忘记密码尝试登录修改试下,虽说数据库的密码很重要,不轻易忘掉,但是这三种方法还是需要掌握的,常在河边走哪有不湿鞋,肯定会有需要用到的时候。

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部