我正在发展 铁轨 v2.3.2与 mysql v5.1Ubuntu 机器。

mysql 数据目录是 /var/lib/mysql/

我有一个 test.dat 文件位于 /var/lib/mysql/tmp/test.dat

我想从 test.dat 在我的数据库表中归档,因此我在其中一个中执行以下SQL语句 耙任务:

namespace :db do
  task :do_something => :environment do

    sql="LOAD DATA INFILE '/var/lib/mysql/tmp/test.dat'
                INTO TABLE myapp.cars;"

    ActiveRecord::Base.connection.execute(sql);
  end
end

但是我有以下错误:

Mysql2::Error: Can't get stat of '/var/lib/mysql/tmp/test.dat' (Errcode: 2): LOAD DATA INFILE '/var/lib/mysql/tmp/test.dat'

可能是什么原因??

PS 我想到的一件事是 /var/lib/mysql/ 只能访问 根用户, ,但我不确定这是否是原因。

有帮助吗?

解决方案

尝试 LOAD DATA LOCAL INFILE ....

其他提示

如您提到的.dat具有root访问权限,
将其更改为644可能会有所帮助

或检查在Ruby中连接MySQL具有文件特权的用户帐户

select File_priv from mysql.user where Host=??? and user=???;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top