目录

准备工作

在执行导入操作之前,请确保数据文件的路径和名称正确,并且在MySQL服务器上是可访问的。

使用LOAD DATA INFILE命令导入数据

在MySQL命令行终端中,执行以下命令将数据文件导入到目标表中:

LOAD DATA INFILE '/myswap/data.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

请根据实际情况替换/myswap/data.csv为数据文件的实际路径和文件名。确保FIELDS TERMINATED BYLINES TERMINATED BY与数据文件中的实际分隔符一致。IGNORE 1 LINES用于忽略数据文件的第一行,通常是字段名行。

解决–secure-file-priv错误

当执行LOAD DATA INFILE命令时遇到ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement错误时,需要解决--secure-file-priv选项的配置问题。

查看secure_file_priv选项的设置

在MySQL命令行终端中执行以下命令,以查看secure_file_priv选项的设置:

SHOW VARIABLES LIKE 'secure_file_priv';

如果结果显示secure_file_priv的值为NULL,则表示该选项未配置。

配置secure_file_priv选项

如果secure_file_priv未配置,按照以下步骤进行配置:

  1. 找到MySQL服务器的配置文件(my.cnfmy.ini)。

  2. 打开配置文件并添加secure_file_priv选项。

    [mysqld]部分添加以下行来设置secure_file_priv选项,将目录路径替换为允许加载文件的目录:

    secure_file_priv = /myswap
    

    确保目录路径是正确的,并且MySQL服务器的操作系统用户具有对该目录的读取权限。

  3. 保存并关闭配置文件。

重启MySQL服务器

执行适当的命令以重启MySQL服务器,以使配置更改生效。

  • 在Ubuntu上使用以下命令:

    sudo service mysql restart
    
  • 在CentOS上使用以下命令:

    sudo systemctl restart mysqld
    ``
    
    

`

  • 在Windows上使用服务管理器或通过命令行重启服务。

在重新配置MySQL服务器后,重新连接到MySQL命令行终端,并再次尝试执行LOAD DATA INFILE命令以导入数据文件。

通过按照上述步骤进行操作,应该能够成功执行LOAD DATA INFILE命令,并将数据文件导入到MySQL数据库的目标表中。

希望这篇博客对你有所帮助!如果你有任何其他问题,请随时提问。

06-22 18:10