轉換mysql資料庫到正常的字符集

2021-04-02 23:44:13 字數 763 閱讀 4810

決心把現有資料庫轉換到正確的字符集。現在沒有很好的工具可以直接支援這個操作,需要自己做匯出和匯入。

使用官方的mysqldump是無法正常匯出的,使用mysql administrator也不行,都會是亂碼。這也反映了資料庫內部沒有使用正常的字符集。

可以使用ems mysql manager裡的extract database功能來匯出,注意不要選commit不然匯入時有些問題。然後對匯出的檔案做一些處理。

首先使用ue查詢替換所有建表時使用的latin字符集定義為gb2312。然後替換建庫的字符集設定。並在檔案前部加上set names gb2312;(不過這句也許不是必須的,但是這樣可以更確保使用了gb2312來運算元據庫)。最好改掉資料庫的名字,匯入到乙個臨時庫。然後把檔案字符集改為utf8,這一步必須要做。

最後使用mysql administrator來restore資料庫,如果中間提示mysql錯誤,在my.ini裡新增set-variable=max_allowed_packet=18m來防止資料量過大時超過packet的最大限制。有時匯入時會提示語法錯,注意檢查一下相應的sql語句。

使用ems匯入總會出錯,原因為止。

導此資料庫轉換成功。

如果mysql伺服器的所有資料庫都作了轉換,可以在my.ini裡加上default-character-set=gb2312。如果只是轉換了部分庫,需要對使用這些庫的php程式作修改。在連線好資料庫以後,執行set names gb2312;。對於.net程式,在連線字串裡加上charset=gb2312。

注意做備份。

Access資料庫到Mysql資料庫實時更新

專案目標 首先是將access資料庫中的大量資料 已經存好的原有百萬級資料 轉存到mysql資料庫中,然後,隨著access中資料的增加,要同步更新mysql資料庫,更新週期自定。思路 一開始的轉存前篇部落格已經講過,這裡就忽略了,主要是實現access資料更新後同步到mysql中。思路是 1.用m...

sqlite資料庫轉換為mysql資料庫

sqlitestudio開啟資料庫檔案,點工具 匯出,資料庫,格式選擇sql,匯出格式選項選擇 use sql formatter to format exported sql statements 匯出後的檔案裡面 開頭如果有 pragma foreign keys off begin trans...

MySql資料庫的時間轉換問題

時間 字串 時間戳之間的互相轉換很常用,但是幾乎每次使用時候都喜歡去搜尋一下用法 本文整理一下三者之間的 轉換 即 date轉字串 date轉時間戳 字串轉date 字串轉時間戳 時間戳轉date,時間戳轉字串 用法,方便日後學習和查閱 date format date,format 函式,mysq...