我应该如何解决–secure-file-priv在MySQL中?
我正在学习MySQL并尝试使用LOAD DATA
子句。 当我用它如下:
LOAD DATA INFILE "text.txt" INTO table mytable;
我得到了以下错误:
MySQL服务器正在运行–secure-file-priv选项,所以它不能执行这个语句
我如何处理这个错误?
我已经检查了同样的错误消息的另一个问题 ,但仍然无法find解决scheme。
我正在使用MySQL 5.6
它按预期工作。 你的MySQL服务器已经启动了–secure-file-priv选项,它基本上限制了你可以使用LOAD DATA INFILE
加载文件的目录。
您可以使用SHOW VARIABLES LIKE "secure_file_priv";
查看已configuration的目录。
你有两个select:
- 将您的文件移动到
secure-file-priv
指定的目录。 - 禁用
secure-file-priv
。 这必须从启动中删除,不能dynamic修改。 要做到这一点检查你的MySQL启动参数(取决于平台)和my.ini。
我遇到过同样的问题。 我终于解决了在命令中使用LOCAL
选项
LOAD DATA LOCAL INFILE "text.txt" INTO TABLE mytable;
你可以在这里find更多的信息http://dev.mysql.com/doc/refman/5.7/en/load-data.html
如果指定了LOCAL,则该文件由客户端主机上的客户端程序读取并发送到服务器。 该文件可以作为完整的path名来指定它的确切位置。 如果以相对path名称的forms给出,则该名称将相对于客户机程序启动的目录进行解释。
在Ubuntu 14和Mysql 5.5.53上,该设置似乎默认启用。 要禁用它,你需要在mysqld config组下的my.cnf文件中添加secure-file-priv = ""
。 例如:-
[mysqld] secure-file-priv = ""
我正在研究Debian上的MySQL5.7.11,这个命令让我看到了这个目录:
mysql> SELECT @@ global.secure_file_priv;
这是什么在Windows 7中为我工作,以禁用secure-file-priv
( vhu的答案选项#2):
- 通过进入
services.msc
停止MySQL服务器服务。 - 转到
C:\ProgramData\MySQL\MySQL Server 5.6
(在我的情况下,ProgramData
是一个隐藏文件夹)。 - 在记事本中打开
my.ini
文件。 - search'secure-file-priv'。
- 在行首添加“#”来注释行。
- 保存文件。
- 进入
services.msc
启动MySQL服务器服务。
对于MySQL Server 5.7.16及以上版本,请参考下面的dbc的注释。
我和'secure-file-priv'有同样的问题。 在.ini文件中注释不起作用,也不在“secure-file-priv”指定的目录中移动文件。
最后,按照dbc的build议,使'secure-file-priv'等于一个空string。 所以如果有人在尝试上面的答案后卡住,希望这样做会有所帮助。
我有这方面的各种问题。 我正在改变my.cnf以及这个问题的其他版本试图展示的各种疯狂的东西。
什么对我有效:
我得到的错误
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
我可以通过打开/usr/local/mysql/support-files/mysql.server并更改以下行来修复它:
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" -- $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
至
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --secure-file-priv="" $other_args >/dev/null & wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
我在Windows 10上有这个问题。“–secure-file-priv在MySQL中”为了解决这个问题,我做了以下工作。
- 在Windowssearch(左下angular),我input“powershell”。
- 右键单击PowerShell并以pipe理员身份运行。
- 导航到服务器bin文件。 (C:\ Program Files \ MySQL \ MySQL Server 5.6 \ bin);
- 键入./mysqld
- 点击“进入”
服务器按预期启动。