1. 程式人生 > >WINDOWS上的MySQL LOAD DATA LOCAL INFILE無法正常工作?

WINDOWS上的MySQL LOAD DATA LOCAL INFILE無法正常工作?

嘗試:

檔案 Z:\Path\To\MySQL\Files\my_file.csv::

1,“a string” 2,“a string containing a , comma” 3,“a string containing a " quote” 4,"a string containing a “, quote and comma” MySQL命令列:

Z:>mysql Enter password: ************** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 8.0.11 MySQL Community Server - GPL

Copyright © 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> DROP TABLE IF EXISTS _

.my_table; Query OK, 0 rows affected, 1 warning (0.03 sec)

mysql> CREATE TABLE IF NOT EXISTS _.my_table ( -> col0 INT NOT NULL PRIMARY KEY, -> col1 VARCHAR(50) NOT NULL -> ); Query OK, 0 rows affected (0.45 sec)

mysql> SHOW VARIABLES WHERE variable_name = ‘secure_file_priv’; ±-----------------±------------------------+ | Variable_name | Value | ±-----------------±------------------------+ | secure_file_priv | Z:\Path\To\MySQL\Files\ | ±-----------------±------------------------+ 1 row in set (0.00 sec)

mysql> LOAD DATA LOCAL INFILE ‘Z:\Path\To\MySQL\Files\my_file.csv’ -> INTO TABLE _.my_table -> FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ -> LINES TERMINATED BY ‘\r\n’; ERROR 1148 (42000): The used command is not allowed with this MySQL version

mysql> SELECT @@GLOBAL.local_infile; ±------------------------+ | @@GLOBAL.local_infile | ±------------------------+ | 0 | ±------------------------+ 1 row in set (0.00 sec)

mysql> SET @@GLOBAL.local_infile := 1; Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@GLOBAL.local_infile; ±------------------------+ | @@GLOBAL.local_infile | ±------------------------+ | 1 | ±------------------------+ 1 row in set (0.00 sec)

mysql> LOAD DATA LOCAL INFILE ‘Z:\Path\To\MySQL\Files\my_file.csv’ -> INTO TABLE _.my_table -> FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ -> LINES TERMINATED BY ‘\r\n’; ERROR 1148 (42000): The used command is not allowed with this MySQL version

mysql> SELECT col0, col1 -> FROM _.my_table; Empty set (0.00 sec)

mysql> exit Bye

Z:>mysql --local-infile=1 Enter password: ************** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 8.0.11 MySQL Community Server - GPL

Copyright © 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> SELECT @@GLOBAL.local_infile; ±------------------------+ | @@GLOBAL.local_infile | ±------------------------+ | 1 | ±------------------------+ 1 row in set (0.00 sec)

mysql> LOAD DATA LOCAL INFILE ‘Z:\Path\To\MySQL\Files\my_file.csv’ -> INTO TABLE _.my_table -> FIELDS TERMINATED BY ‘,’ ENCLOSED BY ‘"’ -> LINES TERMINATED BY ‘\r\n’; Query OK, 4 rows affected (0.19 sec) Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

mysql> SELECT col0, col1 -> FROM _.my_table; ±-----±-----------------------------------------+ | col0 | col1 | ±-----±-----------------------------------------+ | 1 | a string | | 2 | a string containing a , comma | | 3 | a string containing a " quote | | 4 | a string containing a ", quote and comma | ±-----±-----------------------------------------+ 4 rows in set (0.00 sec)

注意字符集編碼問題