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 使用 load data 匯入資料錯誤的一個場景MySql
- MYSQL資料庫匯入資料時出現亂碼的解決辦法MySql資料庫
- Oracle用資料泵匯入資料包12899的錯誤碼解決方法Oracle
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- Mysql資料庫使用Navicat Mysql匯入sql檔案報錯MySql資料庫
- MySQL入門--匯出和匯入資料MySql
- MySQL資料的匯入MySql
- Mysql 資料庫匯入與匯出MySql資料庫
- 小程式批次匯入excel資料,雲開發資料庫匯出cvs亂碼解決方案Excel資料庫
- 帝國CMS匯入恢復資料MySQL server has gone away錯誤的解決辦法MySqlServerGo
- PostgreSQLsql檔案編碼引起的資料匯入亂碼或查詢字符集異常報錯(invalidbytesequence)SQL
- MySQL:客戶端匯入資料Terminal close -- query aborted報錯MySql客戶端
- MySQL error 錯 誤 碼MySqlError
- MySQL 錯誤程式碼MySql
- MySQL匯入百萬資料實踐MySql
- Windows 下 MySQL 資料匯入 RedisWindowsMySqlRedis
- 【MySQL】白話說MySQL(五),資料的匯出與匯入MySql
- 匯入sql檔案出現亂碼SQL
- MySQL匯出資料庫指令碼MySql資料庫指令碼
- MySQL:錯誤程式碼:2059MySql
- Excel匯入null錯誤解決方式ExcelNull
- sqoop用法之mysql與hive資料匯入匯出OOPMySqlHive
- MySQL Shell import_table資料匯入MySqlImport
- 用Navicat把SQLServer資料匯入MySQLServerMySql
- 記錄PHP post提交表單匯入mysql中文亂碼的問題PHPMySql
- pdo_mysql 資料庫亂碼問題MySql資料庫
- SQLServer匯出匯入資料到MySQLServerMySql
- office for Mac Excel匯入csv檔案亂碼MacExcel
- MYSQL資料匯出備份、匯入的幾種方式MySql
- Navicat、into outfile、mysql命令、mysqldump、mysqlpump、mydumper匯出匯入資料MySql
- MySql中表單輸入資料出現中文亂碼的解決方法MySql
- 匯入sql時報日期型別錯誤SQL型別
- vue2匯入專案遇到錯誤Vue
- 執行指令碼寫入中間表錯誤返回錯誤資訊指令碼
- mysql連線錯誤碼1251MySql
- spark sql與mysql 資料載入與匯出資料到mysqlSparkMySql
- Sqoop將MySQL資料匯入到hive中OOPMySqlHive
- mysql匯入報錯怎麼解決?MySql
- 管理工具匯入CSV檔案,中文資料亂碼的解決辦法。