mysql匯入資料亂碼錯誤一則
一、錯誤問題描述:用load data infile 匯入1行資料,中文為亂碼。在load data infile 中指定了字符集。
匯入語句為:load data infile '/home/mysql/order_data.txt' replace into table test.order_data character set utf8 fields terminated by '|' enclosed by '''' lines terminated by '\n';
二、問題分析:1.當前資料庫字元為latin.
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
更改資料庫字符集後再次匯入,還是亂碼。什麼原因呢?我已經在load data file 指定了字符集,要匯入的檔案也是utf8,
會話連線,資料庫字元也是utf8.到底什麼原因呢?
又發現要匯入的表order_data是latin1 字符集。我把表order_data字符集改為utf8,匯入還是亂碼。後來發現表的欄位也是
latin1。執行如下語句轉換:ALTER TABLE order_data CONVERT TO CHARACTER SET utf8;
匯入語句為:load data infile '/home/mysql/order_data.txt' replace into table test.order_data character set utf8 fields terminated by '|' enclosed by '''' lines terminated by '\n';
二、問題分析:1.當前資料庫字元為latin.
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
更改資料庫字符集後再次匯入,還是亂碼。什麼原因呢?我已經在load data file 指定了字符集,要匯入的檔案也是utf8,
會話連線,資料庫字元也是utf8.到底什麼原因呢?
又發現要匯入的表order_data是latin1 字符集。我把表order_data字符集改為utf8,匯入還是亂碼。後來發現表的欄位也是
latin1。執行如下語句轉換:ALTER TABLE order_data CONVERT TO CHARACTER SET utf8;
最終問題解決。匯入不再亂碼。
三、問題總結:mysql的儲存字元結構,除了要看連線時候的字符集,連線資料庫,執行操作所使用的字符集,包括:會話,客戶端,操作結果,還要看儲存資料時使用的字符集:server(全域性) database庫、table表、column列。
三、問題總結:mysql的儲存字元結構,除了要看連線時候的字符集,連線資料庫,執行操作所使用的字符集,包括:會話,客戶端,操作結果,還要看儲存資料時使用的字符集:server(全域性) database庫、table表、column列。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30393770/viewspace-2123231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL資料匯入匯出亂碼問題MySql
- MySQL匯入資料亂碼、出錯等問題的解決辦法MySql
- BW資料匯入亂碼問題
- mysql 匯入中文亂碼解決一例MySql
- mysql 匯入 mysqldump 備份得資料保 gone away錯誤MySqlGo
- MYSQL資料庫匯入資料時出現亂碼的解決辦法MySql資料庫
- 故障分析 | MySQL 使用 load data 匯入資料錯誤的一個場景MySql
- mysql innobackupex 的一則錯誤MySql
- 解決Mysql匯入亂碼問題MySql
- mysql匯入匯出資料中文亂碼解決方法小結MySql
- [MySQL Help]MySQL Workbench用csv格式匯出資料亂碼MySql
- sqlldr匯入資料中文亂碼SQL
- mysql資料匯入匯出MySql
- mysql資料匯出匯入MySql
- 使用PHP向MySQL資料庫匯入資料,中文字元顯示亂碼問題PHPMySql資料庫字元
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- 【MySQL】錯誤資訊寫入slave_relay_log.index 案例一則MySqlIndex
- mysql 資料庫匯入匯出MySql資料庫
- MySQL資料庫匯入匯出MySql資料庫
- Oracle用資料泵匯入資料包12899的錯誤碼解決方法Oracle
- MySQL入門--匯出和匯入資料MySql
- MySQL資料的匯入MySql
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- Oracle 11.2.0.2 exp匯出錯誤處理一則Oracle
- mysql資料庫在不同的伺服器,無法進行資料傳輸,或者匯入匯出資料錯誤,原因分析MySql資料庫伺服器
- 【mysql】資料庫匯出和匯入MySql資料庫
- mysql匯入匯出.csv格式資料MySql
- mysqldump匯入匯出mysql資料庫MySql資料庫
- MySQL表資料匯入與匯出MySql
- Mysql 資料庫匯入與匯出MySql資料庫
- MYSQL資料檔案匯入MySql
- ORACLE MYSQL互相匯入資料OracleMySql
- 解決Excel資料匯入sqlite中的中文亂碼問題ExcelSQLite
- MySQL資料匯入匯出方法與工具介紹一(轉)MySql
- MySQL資料匯入匯出牛刀小試MySql
- 小程式批次匯入excel資料,雲開發資料庫匯出cvs亂碼解決方案Excel資料庫
- mysql資料庫之間、table增量匯入指令碼MySql資料庫指令碼