一、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!我刚才设置的密码是啥???
好吧,希望你们不要遇到以上的情况。即使遇上了,也不用急着跑路,我告诉你一个重置密码的方法,亲测好用。
大致流程是这样的:
编辑mysql的配置文件,在配置文件中增加这个参数:skip-grant-tables。直译就是:跳过授权表。
重启数据库服务,使参数生效。
到了这一步让,你就可以不使用密码打开数据库了。赶紧按照我在上面第二部分介绍的方法设置密码吧。
设置完密码后,是不能直接使用密码登录数据库的。还记得我们第1步做了什么吗?重新编辑配置文件,将添加的参数注释掉,或者删除。
重启数据库服务,就可以使用密码正常登陆了。
以上步骤涉及的命令行如下:
echo skip-grant-tables >> /etc/my.cnf
systemctl restart mariadb
是不是很简单?
四、注意!
以上所有操作均在MySQL-5.5版本下进行,其他版本未测试,请谨慎使用,切记!!!
在my.cnf文件中增加参数时,注意使用的重定向符号为“>>”,是追加,不是覆盖。推荐尽量使用vi或vim操作,以防误操作,导致配置文件原内容被覆盖,造成丢失。
在保证安全的情况下,做好密码记录,可以防止本文中出现的情况,祝各位好运!!!
本文参考了:https://blog.csdn.net/yan13507001470/article/details/70833468
向作者致谢!