一些編碼的相關道理
http://33tsai.blogspot.com/2008/06/mysql-big5utf8.html

phpmyadmin 轉碼相關設定
http://www.neo.com.tw/archives/000250.html
這個 還沒改出來 所以最後使用了新版的 
phpmyadmin 2.11.8.1
可以完整的設定 所要設定的編碼模式

伺服器版本: 5.0.51b-community-nt
通訊協定版本: 10
伺服器: 192.168.2.79 via TCP/IP
使用者: root@idc-test 

MySQL 文字編碼: UTF-8 Unicode (utf8) 
MySQL 連線校對:  校對    utf8_unicode_ci


MySQL 客戶端版本: 5.0.51a
己使用 PHP 擴充附件: mysql

而且設定的壯態還滿仔細的..不錯用
因此 利用 這個版本做 資料庫備份和轉移 目前在phpbb的使用上已經成功
即都使用 utf-8的編碼方式 將 資料庫內容倒出來再匯入bsd上的資料庫是ok的

利用 mysqldump 備份資料庫之方法

要備份 MySQL 資料庫主要分為兩個方法,一是將資料庫目錄完整備份:二是使用 MySQL 內建的 mysqldump 程式。


備份資料庫目錄
MySQL 預設的儲存目錄在 /var/lib/mysql 內容,底下會有以資料庫名稱的目錄,例如 mydb 目錄便應該是 mydb 資料庫的資料。

如果 MySQL 正在運行,請先停止 MySQL,原因是可能會有資料未完全寫入,而 MySQL 會 lock 在使用中的 DB 檔案。


01 /etc/rc.d/init.d/mysqld stop
02 cd /var/lib/mysql/
03 tar zxcf mydb_backup.tgz mydb
04 /etc/rc.d/init.d/mysqld start


以上指令會先停止 MySQL,然後把 mydb 資料庫製作一個 taz 檔的備份,並儲存到 mydb_backup.tgz。
在使用以上指令時,請根據個別系統的設定作出修改。

好了,以上就麼 3 句指令就完成備份了,如果不幸的事情發生了,資料庫發生錯誤而要復原資料,可使用以下指令:


01 /etc/rc.d/init.d/mysqld stop
02 cd /var/lib/mysql/
03 mv mydb mydb_error
04 tar zxvf mydb_backup.tgz
05 /etc/rc.d/init.d/mysqld start


以上指令是先把 /var/lib/mysql/mydb 移到 /var/lib/mysql/mydb_error,然後將原先製作的備份檔解壓到 /var/lib/mysql/mydb。


mysqldump
雖然以上方法十分簡單,但有一個問題存在,那就是在備份及復原時均需停止 MySQL 的運作,這樣對於實際應用十分不便。再者,這樣備份出來的檔案,如果在相同版本的 MySQL Server 應該沒有問題,但移到版本不同的 Server 則不一定可以成功復原。

因為有以上的問題,MySQL 已經內建了備份工具,它就是 mysqldump。
mysqldump 的備份方法是將資料庫內的每個資料表結構及每筆資料產生 SQL 語句,然後存到文字檔。而且它可以自訂每一個資料表一個檔案,以及將資料表結構及資料分開儲存以下是使用例子:

01 mysqldump –user=root -p mydb > /backup/mydb.sql


以上指令會使用 mysqldump 將 mydb 備份到 /backup/mydb.sql,在輸入指令後,需要輸入 MySQL 的 root 密碼。

至於復原資料同樣簡單,只要一句指令便完成:


01 mysqldump –user=root -p mydb < /backup/mydb.sql


以上指令會將 /backup/mydb.sql 備份檔復原到 mydb 裡面。如果你的 MySQL Server 不止一個資料庫,希望可以一次過將所有資料庫備份起來,可以寫一個簡單的 shell script 完成,又或者使用以下指令:


01 mysqldump –user=root -p –all-databases > /backup/mysql.sql


這個 –all-databases 代表所有資料庫,這樣 mysqldump 便會將所有資料庫備份到 /backup/mysql.sql。

來源 http://www.phpdc.com/article/13/

Views: 1