今天我准备登录数据库查看数据,但是我忘记了以前设置的密码是多少。这就很尴尬了。碰到这种情该如何去修改密码呢?
首先得停止目前正在运行的数据库
[root@bogon ~]# mysql -uroot -plhz362424@
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@bogon ~]# systemctl stop mariadb
第二步:需要跳过用户登录这个步骤
[root@bogon ~]# mysqld_safe --skip-grant-table &
[1] 76295
[root@bogon ~]# 210509 20:25:04 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
210509 20:25:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
第三步:修改密码
[root@bogon ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 18
Server version: 5.5.68-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)]> update mysql.user set password=password('123456') where user='root' and host='localhost';
如果提示这个便表示操作成功了
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
第五步:退出数据库
MariaDB [(none)]> exit
Bye
第六步:重新登录数据库,查询自己想查的数据。
[root@bogon ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 55
Server version: 5.5.68-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)]>
注:如果修改配置文件绕过权限表认证,则启动数据库前应删除配置文件中添加的skip-grant-tables。