使用CSV将数据导入MySQL

时间:2014-04-25 19:43:45

标签: mysql csv

我正在尝试使用“使用MySQL进行维度数据仓库”一书来理解数据仓库。在第2章中,我需要将数据插入MySQL中的表。

我正在尝试此代码

TRUNCATE customer_stg;
LOAD DATA INFILE 'customer2.csv'
INTO TABLE customer_stg
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES(
customer_number,
customer_name,
customer_street_address,
customer_zip_code,
customer_city,
customer_state
);

我在Ubuntu 12.04.2上使用lampp。文件'customer2.csv'已被复制到'/ opt / lampp / var / mysql / dw'文件夹中。 在MySQL中,我使用用户'dwid',密码为'password'。 csv文件的文件权限设置为

-rwxr-xr-x 1 mysql mysql   469 Oct 31  2005 customer2.csv

但我仍然无法加载表格中的数据。可以从用户“root”加载。

1 个答案:

答案 0 :(得分:0)

从MySQL 5.5手册页:

  

LOCAL仅在您的服务器和客户端都已用时才有效   配置为允许它。例如,如果启动了mysqld   --local-infile = 0,LOCAL不起作用。请参见第6.1.6节“LOAD DATA LOCAL的安全问题”。

您应该设置选项:

  

本地的infile = 1

进入my.cnf文件的[mysql]条目或使用--local-infile选项调用mysql客户端:

  

mysql --local-infile -uroot -pyourpwd yourdbname

您必须确保在[mysqld]部分中定义了相同的参数,以启用“本地infile”功能服务器端。

这是一项安全限制。我从stackoverflow中的其他一些问题中学到了这一点,我找不到链接,我已经保存了答案。希望这会有所帮助。