root用戶密碼設置
root用戶密碼不能爲空,需要設置一個密碼,看下面設置密碼的三種方法:
方法1: 用SET PASSWORD命令
首先登錄MySQL,使用mysql自帶的那個客戶端連接上mysql。
格式:mysql> set password for 用戶名@localhost = password(‘新密碼’);
例子:mysql> set password for root@localhost = password(‘123’);
方法2:用mysqladmin
關於mysqladmin的介紹:是一個執行管理操作的客戶端程序。它可以用來檢查服務器的配置和當前狀態、創建和刪除數據庫、修改用戶密碼等等的功能,雖然mysqladmin的很多功能通過使用MySQL自帶的mysql客戶端可以搞定,但是有時候使用mysqladmin操作會比較簡單。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
例子:mysqladmin -uroot -p123456 password 123
只用mysqladmin的時候,會出現一個warning警告信息:Warning: Using a password on the command line interface can be insecure.,這個沒關係,是提示你,你直接在cmd下使用明文設置密碼的時候,是不安全的,因爲別人可以通過翻看你輸入指令的歷史記錄來查看到你設置的密碼,所以提示你一下
方法3:用UPDATE直接編輯那個自動的mysql庫中的user表(強烈推薦)
首先登錄MySQL,連接上mysql服務端。
1.mysql> use mysql; 切換到mysql這個庫,這個庫是所有的用戶表和權限相關的表都在這個庫裏面,我們進入到這個庫才能修改這個庫裏面的表。
2.mysql> update user set password=password(‘123’) where user=‘root’ and host=‘localhost’;
其中password=password(‘123’) 前面的password是變量,後面的password是mysql提供的給密碼加密用的,我們最好不要明文的存密碼.其中user是一個表,存着所有的mysql用戶的信息。
3.mysql> flush privileges; 刷新權限,讓其生效,否則不生效,修改不成功。
忘記root密碼的解決方法
以windows爲例:
- 關閉正在運行的MySQL服務,net stop mysql(這個mysql是你添加的mysqld到系統服務時的服務名)。
- 打開DOS窗口,轉到mysql\bin目錄。
- 輸入mysqld --skip-grant-tables 回車。–skip-grant-tables 的意思是啓動MySQL服務的時候跳過權限表認證,因爲之所以mysql啓動之後,客戶端連接的時候需要登陸認證,輸入密碼什麼的,是因爲mysql服務端啓動的時候,加載了自己內部的一些權限相關信息的授權表、權限認證表什麼的,這樣就要求客戶端必須有認證,如果啓動的時沒有加載這些表和設置,那麼我們客戶端再進行登陸的時候,就不需要認證了,那麼就可以登陸上了,登陸之後,我們到mysql這個存有所有用戶信息的表中去修改root用戶或者別的用戶的密碼了,但是這樣搞需要關閉服務端,在實際工作中想關閉mysql服務??
- 再開一個DOS窗口(因爲剛纔那個DOS窗口已經不能動了),轉到mysql\bin目錄。
- 輸入mysql回車,如果成功,將出現MySQL提示符 >。
- 連接權限數據庫: use mysql; 。
- 改密碼:update user set password=password(“123”) where user=“root”;(別忘了最後加分號) 。
- 刷新權限(必須步驟):flush privileges; 。凡是涉及到密碼修改或者後面我們會學到的權限修改,修改完之後全部要再執行一下這一句。
- 退出 quit。
- net start mysql,再進入,使用用戶名root和剛纔設置的新密碼123登錄。