自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

找回MySQL root密碼的解決方案

數(shù)據(jù)庫(kù) MySQL
此文章主要向大家描述的是找回MySQL root密碼的解決方案,我們大家都知道MySQL root密碼的丟失或是遺忘,是一件很令人頭痛的事情,以下的文章就是對(duì)其的解決。

以下的文章主要講述的是在LINUX操作系統(tǒng)下裝MySQL數(shù)據(jù)庫(kù)之后,不小心把MySQL ROOT的密碼弄丟或是在修改初始密碼時(shí),忘記了新的密碼的實(shí)際解決方案,下面就是具體方案的描述,希望在你今后的學(xué)習(xí)中會(huì)有所幫助。

因?yàn)镸ySQL密碼存儲(chǔ)于數(shù)據(jù)庫(kù)MySQL中的user表中所以只需要將我windows 2003下的MySQL中的user表拷貝過(guò)來(lái)覆蓋掉就行了

 

在c:\MySQL\data\MySQL\(linux 則一般在/var/lib/MySQL/MySQL/)目錄下有三個(gè)user表相關(guān)文件user.frm、user.MYD、user.MYI

 

user.frm //user表樣式文件

 

user.MYD //user表數(shù)據(jù)文件

 

user.MYI //user表索引文件

 

為保險(xiǎn)起見(jiàn),三個(gè)都拷貝過(guò)來(lái),不過(guò)其實(shí)如果之前在要恢復(fù)的那個(gè)MySQL上沒(méi)有更改過(guò)表結(jié)構(gòu)的話,只要拷貝user.MYD就行了

 

然后

  1. #. /etc/rc.d/init.d/MySQL stop  
  2. #. /etc/rc.d/init.d/MySQL start  
  3. #MySQL -u root -p XXXXXX 

 

 

好了,可以用windows 2003下MySQL密碼登陸了

 

 

  1. MySQL>use MySQL  
  2. MySQL>update user set Password=PASSWORD('xxxxxx') where User='root'

 

 

這時(shí)候會(huì)出錯(cuò),提示user表只有讀權(quán)限

 

我分析了一下原因,只這樣的,因?yàn)閡ser.*文件的權(quán)限分配是windows 2003下的,在windows 2003下我ls -l一看權(quán)限是666

 

在linux下我一看,拷過(guò)來(lái)后權(quán)限變成了600(其實(shí)正常情況下600就行了,只不過(guò)這里的文件屬主不是MySQL,拷過(guò)來(lái)后的屬主變?yōu)榱薓ySQL root,所以會(huì)出現(xiàn)權(quán)限不夠,這時(shí)候如果你改成權(quán)限666則可以了,當(dāng)然這樣不好,沒(méi)有解決問(wèn)題的實(shí)質(zhì)),在/var/lib/MySQL/MySQL/下ls -l看了一下

 

 

  1. #chown -R MySQL:MySQL user.*  
  2. #chmod 600 user.*  
  3. //OK,DONE 

 

重起一下MySQL

 

重新連接

 

  1. MySQL>use MySQL  
  2. MySQL>update user set Password=PASSWORD('xxxxxx') where User='root';  
  3. MySQL>FLUSH PRIVILEGES; 

 

有一點(diǎn)值得注意:如果你windows 下MySQL如果是默認(rèn)配置的話,注意要還要執(zhí)行

  1. MySQL>delete from user where User='';  
  2. MySQL>delete from user where Host='%';  
  3. MySQL>FLUSH PRIVILEGES; 

好了,到這里恢復(fù)密碼過(guò)程就完成了

這個(gè)方法么就是有點(diǎn)局限性,你必須也具備另外的user表文件

 

其他還有幾種方法

其它方法一(這個(gè)是網(wǎng)上流傳較廣的方法,MySQL中文參考手冊(cè)上的)

 

1. 向MySQLd server 發(fā)送kill命令關(guān)掉MySQLd server(不是 kill -9),存放進(jìn)程ID的文件通常在MySQL的數(shù)據(jù)庫(kù)所在的目錄中。

 

killall -TERM MySQLd

 

你必須是UNIX的MySQL root用戶或者是你所運(yùn)行的SERVER上的同等用戶,才能執(zhí)行這個(gè)操作。

 

2. 使用`--skip-grant-tables' 參數(shù)來(lái)啟動(dòng) MySQLd。 (LINUX下/usr/bin/safe_MySQLd --skip-grant-tables , windows下c:\MySQL\bin\MySQLd --skip-grant-tables)

 

3. 然后無(wú)密碼登錄到MySQLd server ,

  1. >use MySQL  
  2. >update user set passwordpassword=password("new_pass") where user="root";  
  3. >flush privileges; 

 

你也可以這樣做:

  1. `MySQLadmin -h hostname -u user password 'new password''。 

 

4. 載入權(quán)限表: `MySQLadmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。

5.killall -TERM MySQLd

 

6.用新密碼登陸

 

其它方法二

直接用十六進(jìn)制編輯器編輯user.MYD文件

 

不過(guò)這個(gè)里面我要說(shuō)明一點(diǎn),我這里編輯的時(shí)候發(fā)現(xiàn)個(gè)問(wèn)題,加密的密碼串有些是連續(xù)存儲(chǔ)的,有些的***兩位被切開(kāi)了,后兩位存儲(chǔ)在后面其他地方.這一點(diǎn)我還沒(méi)想明白.還有注意一點(diǎn)就是編輯的是加密過(guò)的密碼串,也就是說(shuō)你還是需要另外有user表文件。這種方法和我最上面介紹的方法的區(qū)別在于,這種方法直接編輯linux下的user表文件,就不需要重新改文件屬主和權(quán)限了

 

 【編輯推薦】

  1. MySQL語(yǔ)句優(yōu)化的原則簡(jiǎn)述
  2. MySQL索引和查詢優(yōu)化的實(shí)際操作
  3. MySQL數(shù)據(jù)庫(kù)內(nèi)存調(diào)優(yōu)實(shí)操
  4. MYSQL DELETE語(yǔ)法的實(shí)際操作與代碼
  5. MySQL存儲(chǔ)過(guò)程中的基本函數(shù)描述
責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-05-28 19:39:28

MySQL 編碼轉(zhuǎn)換

2010-05-26 17:21:14

MySQL root密

2010-05-27 18:24:09

MySQL數(shù)據(jù)庫(kù)密碼

2010-06-07 17:09:20

MySQLroot密碼

2010-06-04 17:11:07

MySQLroot密碼

2010-05-18 16:50:58

MySQL root

2010-06-01 10:37:11

MySQL修改root

2010-07-26 10:04:43

SQL Server

2010-03-10 09:44:51

Linux找回根密碼

2010-05-17 09:49:46

MySQL中文問(wèn)題

2010-06-01 08:54:36

MySQL忘記root

2010-04-06 18:47:26

CentOS系統(tǒng)

2017-04-13 12:20:43

Mysqlroot密碼

2009-10-28 13:50:16

Oracle密碼丟失

2020-09-02 11:13:28

密碼網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2009-12-22 11:08:13

Linux操作系統(tǒng)

2010-05-17 14:49:43

MySQL中文亂碼

2010-06-09 17:26:54

2010-06-10 15:44:53

2010-05-17 14:17:25

MySQL pytho
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)