📅  最后修改于: 2023-12-03 15:42:08.303000             🧑  作者: Mango
当 MySQL 服务器使用--secure-file-priv
选项运行时,会使得执行 load data local 语句出现错误错误 1290 (HY000):MySQL 服务器正在使用 --secure-file-priv 选项运行,因此无法执行此语句
。
这是由于MySQL在安全性方面进行了升级,为了防止潜在的安全风险,不允许将文件保存在服务器的任意目录中。--secure-file-priv
选项的作用是设置数据文件的路径,只允许读取指定路径下的文件。
解决方法有以下两种:
--secure-file-priv
的设置,设置允许读取的文件路径。可以通过以下语句查看当前路径设置:SHOW VARIABLES LIKE 'secure_file_priv';
如果返回结果为NULL
,则表示没有设置,可以通过以下语句设置新的路径:
SET GLOBAL secure_file_priv='/new/path/';
请注意替换/new/path/
为您自己的路径。
/var/lib/mysql-files/
。可以通过以下语句修改文件路径并加载数据:LOAD DATA LOCAL INFILE '/var/lib/mysql-files/data.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
请注意替换/var/lib/mysql-files/
和data.csv
为您自己的路径和文件名。
总结:
--secure-file-priv
选项提供了更好的安全性保证,但是也会制约用户的一些操作。如果需要执行LOAD DATA LOCAL INFILE
语句,请根据自身需求选择合适的解决方法。