【发布时间】:2016-12-08 16:09:16
【问题描述】:
我正在使用 MySql 5.5.53-0ubuntu0.14.04.1 和 Julia 版本 0.5.0
在我的 julia 脚本中,我正在使用
conn = MySQL.mysql_connect(host, username, password, database)
command = string("LOAD DATA LOCAL INFILE 'infile' INTO TABLE temp_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"';")
MySQL.mysql_execute(conn, command)
我收到错误消息“此 MySQL 版本不允许使用的命令”
当我直接在 MySQL 控制台上运行该命令时,该命令确实有效,因此我假设这是 Julia MySQL.mysql_connect 的问题。
看起来Python也有类似的问题,下面的语法解决了这个问题。 MySQL LOAD DATA LOCAL INFILE Python
MySQLdb.connect(server, username, password, database, local_infile = 1)
我想知道我应该如何处理 Julia?
【问题讨论】:
-
据此,问题可能在于您的 mysql 服务器未配置为允许 local-infile。您可能需要更改 my.cnf 文件,如下链接:stackoverflow.com/questions/10762239/…
-
至于为 julia 客户端设置选项,我最接近的是
MySQL.mysql_options(conn, Dict(MySQL.MYSQL_OPT_LOCAL_INFILE=>1) );,它引发了一个内部 mysql 错误,但似乎非常接近;如果您正确配置 mysqld 可能会起作用 -
@Tasos Papastylianou ,在我发布这个问题之前,我的 my.cnf 文件已经配置为允许 local-infile,我认为当我直接在 MySQL 控制台上运行它时,这个配置可以使命令工作。您的以下回答解决了我的问题。非常感谢!!
-
是的,我认为[mysql]下的条目允许您的mysql客户端使用此功能,但是[mysqld]也需要它,以便服务器也配置它。 julia 客户端是独立的,所以这个选项必须在 MySQLHandle 对象的构造过程中独立地传递给 connect 命令。