MySQL 密碼相關
阿新 • • 發佈:2020-08-28
登入使用者
當MySQL
客戶端進行使用者登陸之後,可以使用以下命令顯示所登入的使用者
select user();
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
如果直接輸入mysql
命令而不指定使用者名稱,則是以遊客賬戶ODBC@
進行登入
設定密碼
初始的管理員root
是沒有密碼的,我們可以使用以下命令為它設定密碼,注意這個是在CMD
環境下而不是登入到MySQL
mysqladmin -uroot -p舊密碼 password新密碼
mysqladmin -uroot password "123"
忘記密碼
MySQL
的data
資料夾下預設會生成一個mysql
資料庫,其中有user
表就是做登入授權驗證的。
這使得MySQL
必須先經過授權登入後才能進行一系列的操作,但是我們也可以通過一些技術手段繞過這個授權。
切記要使用管理員身份開啟CMD
1.關閉需要授權登入的MySQL
服務程序
net Stop MySQL
2.開啟MySQL
免授權登入的服務程序
mysqld --skip-grant-tables
3.開啟免授權登入的服務程序後可以再開啟一個新的CMD
命令終端,直接使用root
使用者進行登入而不用輸入密碼
mysql -uroot
4.在MySQL
登入狀態下修改密碼(使用password()
函式進行加密,使得密碼儲存是以密文儲存)
update mysql.user set authentication_string=password('yunya') where user = 'root' and host="localhost";
如果上述命令失效或丟擲異常,可使用以下命令(我這裡的環境是5.7版本,5.7以下的版本可嘗試使用以下命令)
update mysql.user set password=password('yunya') where user = 'root' and host="localhost" and host="localhost";
5.立即重新整理到磁碟
flush privileges;
6.退出
exit
7.關閉免授權的服務程序,重新啟動需要授權登入的服務程序
tskill mysqld
net start MySQL # 這裡就是重新啟動需要授權登入的服務程序
8.效果驗證,登入成功
mysql -uroot -pyunya