[Mac Mini Server] mysql 備份

技術筆記
繼上週又把 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 砍掉 重弄一次= =