运行SQL语句时出错
-
25-10-2019 - |
题
我正在发展 铁轨 v2.3.2与 mysql v5.1 上 Ubuntu 机器。
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=???;
不隶属于 StackOverflow