最近公司電力瞬間斷電又重開,造成 Server (Ubuntu 13.10) 無法承受突然的事情發生,造成系統開機時會出現 /tmp/ 無法讀寫的錯誤訊息,而 Server 有做 Raid1 的機制,想說試看看拔一顆起來會如何,當我關機後將一顆硬碟拔起來後開機,發現已經無法進去 Ubuntu 的畫面了,就算把第二顆拔起來或是兩顆在放回去,都已經來不急了,畫面都告訴我找不到系統了,進 BIOS 也看不到硬體裝置,現在後續工作就是要救裡面的資料,使用 R-Studio 軟體花了一天的時間掃描找到了原本裡面的資料,想請問各位大大,我總共備份了 MySQL 內重要的資料夾:
現在想要在另一台同樣裝 mysql ,然後把救回的資料倒到新的 Server 內,所以我將 ibdata1, ib_logfile0, ib_logfile1, table_name (含底下資料夾) 複製一份到新 Server /var/lib/mysql 內,重啟 mysql 後,輸入指令後卻出現錯誤訊息:
$mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
請問我該如何解決?
若單純只是卡在 root@localhost 的密碼驗證問題
可以採取忘記 root 密碼進行重設的流程
本人筆記可參考 http://www.bestlong.idv.tw/thread-62-1-1.html
官方文件 http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
我使用 docker image "tutum/lamp"
執行$service mysql stop
執行 $kill all -TERM mysql
bash: kill: all: arguments must be process or job IDs
bash: kill: -TERM: arguments must be process or job IDs
bash: kill: mysql: arguments must be process or job IDs
似乎沒辦法關閉 mysql.
修改你的my.cnf 配置文件,
在里面的 [mysqld]中某 加入下面的一行
skip-grant-tables
然后保存,重啟mysqld 服務,你可以使用任何用戶名以root管理員的身份登錄 MySQL 了。
然后到mysql 中修改user表:
update user set password=PASSword('這裡是你要使用的新密碼') where user='root';
flush privileges;
一定要用password函數
最后刪除上面my.cnf所添加的內容,重啟服務。
感謝指導,後來利用 docker 13.10 設定與 SERVER 一樣的環境,MySQL 使用 5.5,就有成功把資料庫救回來囉! 以下寫了我的心得感想:
http://www.yaru.news/index.php/mysql
恭喜你!做出來的東西就是你的~一輩子跟著跑不掉嚕~