在MySqL配置上,local_infile已启用,因为我可以验证:SHOW VARIABLES - > local_infile ON。
但是当我执行以下命令时:
的ActiveRecord :: Base.connection.disconnect!
的ActiveRecord :: Base.verify_active_connections!
ActiveRecord :: Base.connection.execute(“LOAD DATA LOCAL INFILE'blalalla'INTO TABLE blababla”)
我收到的内容如下: ActiveRecord :: StatementInvalid:Mysql :: Error:此MySQL版本不允许使用命令:LOAD DATA LOCAL INFILE'/tmp/tmp_stores.csv'INTO TABLE tmp_sztores
这个主题几乎是完全(只是补丁,没有解释),至少在一个现有问题:4652330
Cannot execute "LOAD DATA LOCAL INFILE" Mysql query in Rails after a connection reconnection
我的问题是:为什么在我调用verify_active_connections时会发生这种情况!因此只有当连接关闭然后再次重新连接/连接时?为什么在最初在establish_connection上初始化连接池时它可以工作?
我已经检查了与方法verify_active_connections相关的代码!它委托给MyslAdapter #reconnect!它调用相同的“连接”方法......
我不明白为什么重新连接后应该显式设置local_infile标志,否则它不起作用。
谢谢!!!