資料升級到5.1所遇到的問題

rainbowbridg發表於2008-07-18

這回資料庫升級遇到了一下問題:

我們的資料庫原來是mysql3.23.58想升級到5.1,因為這是大版本的升級,不能使用tar之類的來移植,所以只能用mysqldump來做,但出現了下面的問題

一. 字符集問題

由於3.23還不能設定表的字符集,但是升級到5.1要設為utf8,我用mysqldump匯出資料後倒入,發現資料為亂碼,找了很多資料發現要什麼icov來轉換什麼的,後來發現需要設定幾個引數就可以,引數如下:

mysql伺服器啟動時需要設定utf8的環境

my.inf

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

然後倒入資料,發現資料顯示正確

二. 作為客戶端連線mysql資料庫時,將字符集設定成utf8
建立連線後,先執行以下語句:

SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

每次資料庫重連,以上語句需要重設
修改 includes/database.php 檔案:
查詢
CODE:[Copy to clipboard]$this->_table_prefix = $table_prefix;
在該行程式碼下面新增以下三行程式碼:
CODE:[Copy to clipboard]mysql_query("SET NAMES 'utf8'", $this->_resource);

CODE:[Copy to clipboard]mysql_query("SET CHARACTER SET utf8", $this->_resource);

CODE:[Copy to clipboard]mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'", $this->_resource);

二. 安裝的問題

由於我安裝的時候希望資料檔案和軟體分離到不同的路徑,所以在configure時加了datadir和localstatedir,但是由於這2個引數不一致,發現後面bin/mysql_install_db --user=mysql 會去找localstatedir指定的目錄,但是2個路徑不一致,發現始終都有問題,後將2個引數的路徑改為一樣就可以了

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-1007487/,如需轉載,請註明出處,否則將追究法律責任。

相關文章