MySQL数据库忘记root密码解决

MySQL数据库忘记root密码解决:

  • 进入配置文件/etc/my.cnf
  • 在[mysqld]下加入一条语句:skip-grant-tables
  • [mysqld] 
    datadir=/var/lib/mysql 
    socket=/var/lib/mysql/mysql.sock 
    skip-grant-tables 

     

  • 重新启动mysqld:service mysqld restart
  • 无密码登录MySQL数据库:mysql -uroot -p
  • 进入数据库后操作:

    # 使用mysql库
    mysql> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    # 一定要查看清楚user表的用户密码字段名
    mysql> select * from user limit 1\G;
    ******************* 1. row *********************
    Host: localhost
    User: root
    Select_priv: Y
    ...(此处省略)
    plugin: mysql_native_password
    auther_string: *81F5E21E35407D884A6CD4A731AEBFB7AF209E1B
    # 这串字符就是加密后的密码,选取其字段名
    password_expired: N
    password_last_changed: 2018-05-31 15:12:34
    password_lifetime: NULL
    account_locked: N
    1 row in set (0.00 sec)

  • 修改密码:

    mysql> update user set auther_string=PASSWORD('123') where User='root';
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 2 Changed: 1 Warnings: 1

  • 修改成功后退出数据库,将配置文件中的无密码登录注释掉
  • 重启mysqld: [root@BDKVM01 ~]# systemctl restart mysqld
  • 验证:[root@BDKVM01 ~]# mysql -uroot -p123

你可能感兴趣的:(工具记录)