為什么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輸入正確的用戶名密碼連接數據庫。