MySQL密碼恢復筆記
所以只需要將我windows 2003下的MySQL中的user表拷貝過來覆蓋掉就行了
在c:mysqldatamysql(linux 則一般在/var/lib/mysql/mysql/)目錄下有三個user表相關檔案user.frm、user.MYD、user.MYI
user.frm //user表樣式檔案
user.MYD //user表資料檔案
user.MYI //user表索引檔案
為保險起見,三個都拷貝過來,不過其實如果之前在要恢復的那個MySQL上沒有更改過表結構的話,只要拷貝user.MYD就行了
然後#. /etc/rc.d/init.d/mysql stop
#. /etc/rc.d/init.d/mysql start
#mysql -u root -p XXXXXX
好了,可以用windows 2003下mysql密碼登陸了
mysql>use mysql
mysql>update user set Password=PASSWORD("xxxxxx") where User="root";
這時候會出錯,提示user表只有讀許可權
我分析了一下原因,只這樣的,因為user.*檔案的許可權分配是windows 2003下的,在windows 2003下我ls -l一看許可權是666
在linux下我一看,拷過來後許可權變成了600(其實正常情況下600就行了,只不過這裡的檔案屬主不是mysql,拷過來後的屬主變為了root,所以會出現許可權不夠,這時候如果你改成許可權666則可以了,當然這樣不好,沒有解決問題的實質),在/var/lib/mysql/mysql/下ls -l看了一下再
#chown -R mysql:mysql user.*
#chmod 600 user.*
//OK,DONE
重起一下MYSQL
重新連線
mysql>use mysql
mysql>update user set Password=PASSWORD("xxxxxx") where User="root";
mysql>FLUSH PRIVILEGES;
有一點值得注意:如果你windows 下mysql如果是預設配置的話,注意要還要執行
mysql>delete from user where User="";
mysql>delete from user where Host="%";
mysql>FLUSH PRIVILEGES;
好了,到這裡恢復密碼過程就完成了
這個方法麼就是有點侷限性,你必須也具備另外的user表檔案
其他還有幾種方法
其它方法一(這個是網上流傳較廣的方法,mysql中文參考手冊上的)
1. 向mysqld server 傳送kill命令關掉mysqld server(不是 kill -9),存放程式ID的檔案通常在MYSQL的資料庫所在的目錄中。
killall -TERM mysqld
你必須是UNIX的root使用者或者是你所執行的SERVER上的同等使用者,才能執行這個操作。
2. 使用`--skip-grant-tables" 引數來啟動 mysqld。 (LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:mysqlinmysqld --skip-grant-tables)
3. 然後無密碼登入到mysqld server ,
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
。你也可以這樣做:`mysqladmin -h hostname -u user password "new password""。
4. 載入許可權表: `mysqladmin -h hostname flush-privileges" ,或者使用 SQL 命令`FLUSH PRIVILEGES"。
5.killall -TERM mysqld
6.用新密碼登陸
其它方法二
直接用十六進位制編輯器編輯user.MYD檔案
不過這個裡面我要說明一點,我這裡編輯的時候發現個問題,加密的密碼串有些是連續儲存的,有些的最後兩位被切開了,後兩位儲存在後面其他地方.這一點我還沒想明白.還有注意一點就是編輯的是加密過的密碼串,也就是說你還是需要另外有user表檔案。這種方法和我最上面介紹的方法的區別在於,這種方法直接編輯linux下的user表檔案,就不需要重新改檔案屬主和許可權了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-369029/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql忘記root密碼恢復MySql密碼
- Mysql密碼恢復MySql密碼
- mysql密碼忘記如何恢復(windows/liunx版本:mysql-8.0.27)MySql密碼Windows
- MySQL:Innodb恢復的學習筆記MySql筆記
- mysql學習筆記之備份與恢復MySql筆記
- mysql 忘記密碼,mysql修改密碼MySql密碼
- linux 下mysql資料庫密碼恢復的方法LinuxMySql資料庫密碼
- 密碼和引數的恢復密碼
- 使用Recovery ID恢復密碼(ZT)密碼
- mysql增量恢復指令碼MySql指令碼
- oracle忘記使用者名稱密碼怎樣恢復Oracle密碼
- 密碼學筆記密碼學筆記
- mysql 忘記密碼MySql密碼
- MySQL忘記密碼MySql密碼
- 教你如何恢復各種文件密碼密碼
- [Mysql]mysql忘記ROOT密碼MySql密碼
- Mysql 企業級備份與恢復(學習筆記七)MySql筆記
- influxdb 筆記: 備份/恢復UX筆記
- Password Recovery Bundle Pro輕鬆恢復所有丟失密碼或忘記密碼密碼
- MYSQL修改密碼和忘記ROOT密碼MySql密碼
- 【IBM-AIX】-aix恢復root密碼IBMAI密碼
- Cisco Catalyst交換機密碼恢復策略(轉)密碼
- mysql忘記root密碼MySql密碼
- CUUG筆記--oracle備份和恢復筆記Oracle
- rman之建立恢復目錄筆記筆記
- RHEL 7單使用者模式密碼恢復模式密碼
- 思科二層三層交換機密碼恢復密碼
- mysql 5.7忘記root密碼MySql密碼
- mysql root 密碼忘記windowsMySql密碼Windows
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- 為SSO 5.5恢復忘記的administrator@vsphere.local密碼密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 【Mysql】完全恢復與不完全恢復MySql
- rar password recover(rar密碼恢復工具) v2.0.0.0密碼
- 恢復 Microsoft SQL Server SA 密碼的三種方法ROSSQLServer密碼
- Oracle 如何恢復sys使用者歷史密碼Oracle密碼
- 如何恢復Pages,Numbers或Keynote文件密碼密碼
- 思科路由器密碼恢復的經典方案路由器密碼