关于mysql-5.5数据库密码的设置和重置

一、mysql-5.5数据库的密码长什么样?

直接打开给你看:

[root@lnmp1 ~]# mysql -uroot -p			#在已知密码的情况想打开数据库
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.64-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)]> use mysql;		#切换至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]> select host,user,password from user where user='root';		#查看root用户的密码。
+-----------------------+------+-------------------------------------------+
| host                  | user | password                                  |
+-----------------------+------+-------------------------------------------+
| localhost             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1                   | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)

以上可见,root用户可以用4种方式登录数据库,而密码……其实我的密码没有这么复杂(这么复杂我也记不住不是?)。Mysql的数据库密码是经过加密的。通过查询数据库看到的密码,是加密后的样子。如果你看到自己的数据库密码是明文的样子,打个比方,你设置的密码是:abc123,设置完之后,经过我以上给出的步骤查询发现,显示的还是:abc123,那说明是你设置密码的方式错了。比如用下面这种方式:

update user set valuse='abc123' where user='root';

不要问我怎么知道的……

二、设置mysql-5.5数据库密码的正确姿势

在数据库无密码状态下,打开数据库,按照如下步骤设置密码:

[root@lnmp1 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-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)]>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('abc123') where user='root';		#设置你需要的密码,我这里用的密码是:abc123
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> exit		#退出数据库
Bye
[root@lnmp1 ~]# mysql -uroot -p		#使用刚刚设置到的密码登陆。
Enter password:

三、mysql-5.5数据库密码的重置

场景一:打开好久不用的数据库,想不起密码是什么了,悲催的是,你还没有记录的习惯。
场景二:哎呀!好激动啊,数据库终于可以使用了,保险起见,这次要设置一个安全点的密码(鬼知道他刚刚经历了什么……),经过一番折腾,终于设置了一个安全的密码,结果登录的时候发现:WC!我刚才设置的密码是啥???

好吧,希望你们不要遇到以上的情况。即使遇上了,也不用急着跑路,我告诉你一个重置密码的方法,亲测好用。
大致流程是这样的:

  1. 编辑mysql的配置文件,在配置文件中增加这个参数:skip-grant-tables。直译就是:跳过授权表。
  2. 重启数据库服务,使参数生效。
  3. 到了这一步让,你就可以不使用密码打开数据库了。赶紧按照我在上面第二部分介绍的方法设置密码吧。
  4. 设置完密码后,是不能直接使用密码登录数据库的。还记得我们第1步做了什么吗?重新编辑配置文件,将添加的参数注释掉,或者删除。
  5. 重启数据库服务,就可以使用密码正常登陆了。

以上步骤涉及的命令行如下:

echo skip-grant-tables >> /etc/my.cnf
systemctl restart mariadb

是不是很简单?

四、注意!

  1. 以上所有操作均在MySQL-5.5版本下进行,其他版本未测试,请谨慎使用,切记!!!
  2. 在my.cnf文件中增加参数时,注意使用的重定向符号为“>>”,是追加,不是覆盖。推荐尽量使用vi或vim操作,以防误操作,导致配置文件原内容被覆盖,造成丢失。
  3. 在保证安全的情况下,做好密码记录,可以防止本文中出现的情况,祝各位好运!!!

本文参考了:https://blog.csdn.net/yan13507001470/article/details/70833468
向作者致谢!

你可能感兴趣的:(Mysql数据库)