在MySql Workbench中连接local-infile选项

时间:2015-07-16 09:28:33

标签: mysql mysql-workbench

是否可以在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

5 个答案:

答案 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)

您是否尝试将该参数添加到连接设置(高级 - >其他)?哈文自己还没做过,但值得一试: enter image description here

答案 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”处于禁用状态,因为这会带来安全风险。恶意服务器或代理可能会向客户端发送虚假的“本地文件请求”数据包,并读取客户端有权打开的任何文件。因此,您必须通过添加上面的标志来手动允许它。