如何修改mysql root密碼

如何修改mysql root密碼
  忘記MySQL ROOT密碼是在MySQ使用中很常見的問題,但是有不少朋友並不會重置ROOT密碼,那叫苦啊,特寫此文章與你們交流:

一、編輯MySQL的配置文件:my.ini
通常在MySQL安裝目錄下有my.ini即MySQL的配置文件。
在此配置文件的最後添加以下一行:
skip-grant-tables
保存退出編輯。

二、而後重啓MySQL服務
在命令行下執行:
net stop MySQL
net start MySQL

三、設置新的ROOT密碼
而後再在命令行下執行:
MySQL -u root -p MySQL或mysql -u root -p
直接回車無需密碼便可進入數據庫了。
此時,在命令行下執行 use mysql;
如今咱們執行以下語句把root密碼更新爲:
update user set password=PASSWORD("root") where user='root';
(注意:此時不用使用mysqladmin -u root -p password '你的新密碼'這條命令修改密碼,由於'skip-grant-tables'配置,
不信的話,你能夠試用一下,它確定會報以下所示的錯誤:
F:\Documents and Settings\long>mysqladmin -u root -p password 'root'
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use 'password' command as mysqld runs
 with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead)
exit 退出MySQL。

四、還原配置文件並重啓服務

而後修改MySQL配置文件把剛纔添加的那一行'skip-grant-tables'刪除。
再次重起MySQL服務,密碼修改完畢。
用新密碼root試一下吧,又能登入從新進入mysql了?



附mysql修改密碼的一些方法:
1. 用MYSQL的grant語句,例如
mysql -h hostname –u root 命令登陸到mysqld server 用grant 命令改變口令:
mysql -h 192.168.1.101 -u root
上邊的192.168.1.101 是偶的mysqld 運行機器,你換成本身的,這樣登陸上去,就能夠修改密碼了,
其實不必這麼麻煩,直接mysql -u root就能夠了。
GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION

2. mysqladmin -u 用戶名 -p 舊密碼 password 新密碼
例1:給root 加個密碼root。首先進入cmd中,而後鍵入
如下命令,至於在CMD下可否使用mysqladmin,
就要看你的Windows環境變量PATH中是否添加「E:\Program Files\MySQL\MySQL Server 5.1\bin;」(請改成你本身的安裝路徑)了。)
mysqladmin -u root password root
注:由於開始時root 沒有密碼,因此-p 舊密碼一項就能夠省略了。
例2:再將root 的密碼改成admin。
mysqladmin –u root -proot password admin(注意-p 不要和後面的密碼分
開寫,要寫在一塊兒,否則會出錯,錯誤以下所示:
F:\Documents and Settings\long>mysqladmin -u root -p root password admin
Enter password: ****
mysqladmin: Unknown command: 'root')
固然你也能夠這樣寫:mysqladmin –u root -p password admin回車,
而後再輸入你的舊密碼,這樣也是徹底也能夠的,看你的愛好了.
例3:再將root用戶的密碼去掉.
F:\Documents and Settings\long>mysqladmin -u root -p password  ;
Enter password: root
此時,root用戶又沒有密碼了.能夠經過下面的方法設置:
F:\Documents and Settings\long>mysql -u root
mysql>set password for 'root'@'localhost'=password('root');(語法:SET PASSWORD FOR '用戶名'@'主機' = PASSWORD('密碼'))
mysql>set password for 'root'@'%'=password('root');
//本條可選,這是在配置mysql數據庫,若是你選擇了容許root經過遠程登陸進來時,你在mysql數據庫下的user表中,
use mysql;
select * from user;能夠看到有兩條記錄,若是你沒有配置這一項的話,只會第一條記錄!
Host                    User     Password
'localhost', 'root', '*9C9F4927129ECC3209D8550DC8B67156FDBF9418', ...
'%', 'root', '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B', ...
經過以上設置,root的密碼將變爲root這樣就完成了根用戶root密碼的設置工做。

3. use mysql;
 update user set password =password('yourpass') where user='root'

(注:下面的這些方法我本人沒有試過,不知對不對,我只是轉載了一下:)
下面的方法都在mysql提示符下使用,且必須有mysql的root權限:
方法4
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
確切地說這是在增長一個用戶,用戶名爲jeffrey,密碼爲biscuit。
在《mysql中文參考手冊》裏有這個例子,因此我也就寫出來了。
注意要使用PASSWORD函數,而後還要使用FLUSH PRIVILEGES。

方法5
和方法三同樣,只是使用了REPLACE語句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES

方法6
使用SET PASSWORD語句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
你也必須使用PASSWORD()函數,
可是不須要使用FLUSH PRIVILEGES。


方法7
使用GRANT ... IDENTIFIED BY語句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
這裏PASSWORD()函數是沒必要要的,也不須要使用FLUSH PRIVILEGES。

注:mysql 新設置用戶或更改密碼後需用flush privileges刷新MySQL的系統權限相關表,
不然會出現拒絕訪問,還有一種方法,就是從新啓動mysql服務器,來使新設置生效。

java



已有 0 人發表留言,猛擊->>這裏<<-參與討論


JavaEye推薦
相關文章
相關標籤/搜索