为什么MySQL 不用输入用户名和密码也能访问
今天后天连接数据库时密码写错了,却发现后台能够拿到数据库中的数据,又故意把用户名和密码都写错,结果还是可以。这就意味着任何一个人只要登入服务器,就可以轻轻松松的删了所有的数据。所以就寻找了一下解决方法:
(1)进入mysql控制台,输入select user,Host, plugin from mysql.user;
结果如下
mysql> select user,Host, plugin from mysql.user; +---------------+-----------+-----------------------+ | user | Host | plugin | +---------------+-----------+-----------------------+ | root | localhost | mysql_native_password | | mysql.session | localhost | mysql_native_password | | mysql.sys | localhost | mysql_native_password | +---------------+-----------+-----------------------+ 3 rows in set (0.00 sec)
可以看到使用插件保存了密码,所以输入update mysql.user set plugin = 'mysql_native_password' where user = 'root' and host='localhost';
结果如下:
mysql> update mysql.user set plugin = 'mysql_native_password' where user = 'root' and host='localhost'; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
输入FLUSH PRIVILEGES;
刷新一下
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)
到这里就结束了,重启mysql输入正确的用户名密码连接数据库。