[Mac Mini Server] mysql 備份
2010 Nov 19 技術筆記
繼上週又把 Mac Mini 玩壞後, 無法開機, 但是硬碟(內容)是好的
經過詢問各方高手後, 得知 Mac OS 是可以灌在隨身碟裡的...
所以插了一顆隨身碟(1GB)到 Mac 上
開機時按住鍵盤C (可從光碟開機), 用 Mac 的安裝光碟開機後
把 Mac OS 灌到隨身碟中, 完畢後 把 Mac 內的硬碟的資料 copy 至 隨身碟
然後再把 Mac 內的硬碟 重灌 Mac OS (要先用 Disk Utility 把磁區 Erase 掉)
最後呢 再把資料 copy 回 Mac 內的硬碟
備份就算完成了
...
比較麻煩的是 mysql db 的部份
備份時 只要備份 /var/mysql 中 資料庫的目錄即可
其他歷程檔不需要備份
(歷程檔依server運行時間不同 可能會超大, 我的 server 大概運作了三個月 有 70G = = )
複製到新的Mac 的 /var/mysql 後
記得把資料庫的目錄修改權限, user 是 mysql, group 是 wheel
sudo chown -R mysql:wheel db_name (db_name 就是你的資料庫目錄)
然後 再來 很重要的
如果你在複製資料庫目錄到新環境之前 就已經把新環境的 mysql service 打開的話
必須先把 mysql 啟動的程序關掉
不是把 mysql 關掉喔, 是把 Mac 的一個啟動服務關掉
不然這個啟動服務會一直試圖去開啟 mysql (明明沒辦法開啟 還是傻傻的一直去開...)
sudo launchctl unload /System/Library/LaunchDaemons/org.mysql.mysqld.plist
用這行 把服務關掉
(其實直接按 Server Admin 中 mysql 的 Stop 也可以啦, 但是關不掉的時候就只能這樣關了)
然後 最糟糕的是
如果你系統內的資料庫目錄 整個爛掉 要重來的話
可以先把 /var/mysql 內所有檔案都砍掉 (也是要先把 mysql 服務關掉)
然後再執行
sudo /usr/bin/mysql_install_db --user=_mysql --datadir=/var/mysql
mysql 會把資料庫的路徑重新安裝一次
然後再把要備份的資料庫塞進去 /var/mysql
最後, 啟動 mysql 服務 就搞定了
(這花了我四天才弄好)
另
如果中間 log 檔出現了這樣的訊息
/usr/local/mysql/libexec/mysqld: File './mysql-bin.index' not found (Errcode: 13)
這是歷程檔找不到
可能是誤砍 或是檔案在, 權限不對
請用上面改權限的指令把目錄內的權限都改掉
如果再不行...
就把 /var/mysql 砍掉 重弄一次= =