是否可以在MySql Workbench中连接local-infile选项?像这样:
mysql -h 10.152.xx.xx -u USER -p --local-infile MyDatabase
原因是,LOAD DATA LOCAL INFILE似乎只适用于此选项。即使
SHOW GLOBAL VARIABLES LIKE 'local_infile';
返回
'local_infile', 'ON'
LOAD DATA LOCAL INFILE产生
Error Code: 1148. The used command is not allowed with this MySQL version
答案 0 :(得分:1)
如果您使用的是MySQL Workbench 8.0.12(此问题的最新情况),则此错误可能会说明问题,
https://bugs.mysql.com/bug.php?id=91891
我刚从MySQLWorkbench 6.x升级到8.0.12,并且LOCAL INFILE的错误代码为1148。MySQL版本不允许使用该命令。无需任何其他更改(GLOBAL变量local_infile为ON)。
P.S。我也尝试在“高级”首选项中使用local_infile = 1参数,它不能解决问题。暂时,我回滚到工作台的旧版本,直到修复了该错误。
答案 1 :(得分:0)
您是否尝试将该参数添加到连接设置(高级 - >其他)?哈文自己还没做过,但值得一试:
答案 2 :(得分:0)
自Workbench 8.0.12起,已验证的bug无效。错误注释的解决方案:
服务器和客户端都可以限制将LOCAL关键字用于LOAD DATA和LOAD XML。如果任何一个阻止它,则会产生相同的错误消息。
要使服务器允许访问,请使用
SET GLOBAL local_infile = 1;
设置local_infile变量,或使用SHOW GLOBAL VARIABLES LIKE 'local_infile';
对其进行检查。或者,编辑mysql的配置以包含local_infile=1
。要使Workbench允许访问,请编辑连接(单击MySQL Connections的扳手图标,或右键单击特定的连接并选择Edit Connection ...)。在“高级”选项卡上的“其他:”框中,添加行
OPT_LOCAL_INFILE=1
我只是遇到了这个问题,并设置了变量以及MySQL Workbench配置解决了该问题。
答案 3 :(得分:0)
在MySQL Workbench中编辑连接设置。
在“高级”选项卡下,将以下选项添加到其他窗口的连接器选项中:
OPT_LOCAL_INFILE = 1
答案 4 :(得分:0)
在客户端的连接字符串中添加int
标志。您可以通过转到连接设置(高级->其他)并将以下行粘贴在底部来添加此参数:
AllowLoadLocalInfile=true
默认情况下,“ LOAD DATA LOCAL INFILE”处于禁用状态,因为这会带来安全风险。恶意服务器或代理可能会向客户端发送虚假的“本地文件请求”数据包,并读取客户端有权打开的任何文件。因此,您必须通过添加上面的标志来手动允许它。