MySQL 4.1 起曾不支援中文路徑/檔案名,導致 SELECT ... INTO OUTFILE 與 LOAD DATA INFILE 在中文目錄下失敗。MySQL 5.1 已修復此問題。
mysql> USE test;
mysql> DESC tr;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(50) | YES | | NULL | |
| purchased | date | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
mysql> INSERT INTO tr (id,name) VALUES (1,'EWR'),(2,'SR'),(3,'GH');
-- 匯出到中文路徑/檔名
mysql> SELECT * FROM tr INTO OUTFILE 'c:/mysql51/豬八戒.txt';
Query OK, 11 rows affected (0.00 sec)
mysql> SELECT * FROM tr INTO OUTFILE 'c:/mysql51/新建文件夾/豬八戒.txt';
Query OK, 11 rows affected (0.02 sec)
-- 匯入驗證
mysql> CREATE TABLE tr2 AS SELECT * FROM tr LIMIT 0;
mysql> LOAD DATA INFILE 'c:/mysql51/新建文件夾/豬八戒.txt' INTO TABLE tr2;
Query OK, 11 rows affected (0.00 sec)
mysql> LOAD DATA INFILE 'c:/mysql51/新建文件夾/豬八戒.txt' INTO TABLE tr;
ERROR 29 (HY000): File 'c:MySQL51脨脗陸簍脦脛錄鎂錄脨脰鉚擄脣陸盲.txt' not found (Errcode: 2)
5.0 版本中文路徑編碼錯誤,導致找不到檔案。
MySQL 5.1 徹底解決中文路徑/檔案名在 INTO OUTFILE 和 LOAD DATA INFILE 中的亂碼問題,大幅提升中文環境易用性。