1. mysql(mariadb)忘记登陆密码,提示如下

1
2
3
[root@localhost ~] # mysql -uroot -p
Enter password: 
ERROR 1045 (28000): Access denied  for  user  'root' @ 'localhost'  (using password: YES)


2.停止mysql

1
[root@localhost ~] # systemctl stop mariadb


3.使用--skip-grant-tables连接mysql,此时mysql不能进行授权操作,可重置密码

1
2
3
[root@localhost ~] # mysqld_safe --skip-grant-tables 
161103 14:52:25 mysqld_safe Logging to  '/var/log/mariadb/mariadb.log' .
161103 14:52:25 mysqld_safe A mysqld process already exists


4.开启mysql并直接进入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@localhost ~] # systemctl start mariadb
[root@localhost ~] # mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection  id  is 2
Server version: 5.5.50-MariaDB MariaDB Server
 
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
 
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
MariaDB [(none)]> 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
MariaDB [mysql]> update user  set  password=password( '123456' ) where user= 'root' ;
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0
 
MariaDB [mysql]> flush privileges
     -> ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]>  exit ;
Bye


5.已重置密码为123456,测试登录

1
2
3
4
5
6
7
8
9
10
11
[root@localhost ~] # mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection  id  is 3
Server version: 5.5.50-MariaDB MariaDB Server
 
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
 
Type  'help;'  or  '\h'  for  help. Type  '\c'  to  clear  the current input statement.
 
MariaDB [(none)]>