[續] 用 php script 備份 mysql 資料庫 (非phpMyAdmin)

前兩週幫一個網站搬家…

原本以為問題已經解決了

結果網站裡面

有個 phpBB3 的 db

裡面有大量的 table 的欄位都是用 blob 的格式

因為太理所當然使用 phpMyAdmin 了

從來也沒想過 blob 的二進位格式要怎麼輸出

如果只是用一般字串輸出

就會爛掉 灌不回去

後來只好另外弄一個測試的 table

然後看一下 phpMyAdmin 是怎麼匯出 blob 這種二進位資料

phpMyAdmin 是用這種 16進位的方式匯出的

0x4b32e69c9fe69cabe88083e88083e58db7414228e99984e8a7a3e7ad9429

所以匯出程式要用 bin2hex 這種函數把 二進位資料 的東西轉成 16進位的字串

這樣才算完成

希望以後不要再轉舊網站的資料了 T_T

用 php script 備份 mysql 資料庫 (非phpMyAdmin)

昨天遇到一個需要搬家的案子

他網站非常舊了

因為是自己架的

php 還是 5.2

mysql 還是 4.x

本來想用 phpMyAdmin 去備份

最新的 phpMyAdmin 已經沒支援 php5.2

但網站上可以下載支援 php5.2 的

裝上去以後

結果系統沒有 mbstring…

然後因為機器是客戶自己裝的

所以也沒辦法裝package

只好找 網路上人家寫好的 php script 把資料庫 dump 出來

https://davidwalsh.name/backup-mysql-database-php

基本上這程式還ok

但有個小問題

因為是很久的網站

想當然編碼都是 big5

如果沒先轉 utf8

就直接 addslashes

那許功蓋這種字後面就會多出 (反斜線)

然後匯入的時候就會爛掉

還有就是有些 create table 的命令在 新的 mysql 版本可能是無效的

也要稍微改一下