在工作中,經常需要對舊機器裁撤,如果機器上有資料表則必須進行遷移。在遷移過程中,資料表編碼是個很煩人的問題,最近就遇到這種問題,這裡記錄下解決過程,方便以後查閱。
1. 先看看新舊機器的資料庫編碼:
show variables like 'character%'
舊機器(latin1)
新機器(utf8)
2. 再看看要遷移的資料表的編碼
engine=myisam auto_increment=1 default charset=utf8;
3. 遷移過程分析
如果直接mysqldump資料表然後放到新機器上進行source,結果會是這樣的:
a. 如果直接在linux伺服器上mysql連線到新機器,檢視新資料表,不會出現中文亂碼,一切正常
b. 如果通過**連線到新機器,可能會出現中文亂碼(取決於**連線資料表指定的編碼方式)
如果出現b這種情況,有2種解決方式:
(1). 修改**連線資料表指定的編碼方式,本例子中就是要把編碼方式指定為latin1
(2). mysqldump的時候指定編碼方式,本例子中應該指定為latin1,即--default-character-set=latin1,這樣dump出來的sql檔案就不會有中文亂碼,接著把匯出的sql檔案的set names latin1修改為set names utf8,最後再source到新機器上(帶來的新問題是在linux伺服器上直接通過mysql連線到新機器看到的資料表內容會亂碼,不過可以通過執行set names utf8命令解決)
mysql遷移 備份資料表,匯出表資料與結構
在伺服器上部署的爬蟲成功的爬取了一些資料,現在需要把這個表遷移到另一台主機 mysql u 使用者名稱 p輸入密碼後進入mysql命令列 顯示資料庫的表 show databases use information schema 通過顯示表的大小,確認爬取的表是哪個表 select table na...
檢視mysql資料庫 資料表編碼資訊
通過mysql的命令列即可以檢視資料庫 資料表的編碼資訊。1.檢視資料庫編碼格式 show variables like character set database 2.檢視資料表的編碼格式 show create table 表名 編碼格式的正確與否,影響著資料庫中的資料 尤其是中文資料 能否正...
資料表的遷移與填充
遷移 建立資料表的操作 刪除資料表的操作 修改資料表的操作 填充 往資料表裡填充寫入測試的資料 資料的插入操作 資料的遷移操作 1.1.遷移檔案的建立與編寫 建立遷移檔案,up表示建立資料表,down表示刪除資料表 編寫遷移檔案 讓其能夠實現資料表的建立與刪除 1.2.執行遷移檔案 命令 magra...