mysql - 运行SQL语句时出错

标签 mysql ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 mysql-error-1064

我正在 Ubuntu 机器上使用 MySQL v5.1 开发 Rails v2.3.2。

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

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

我想将 test.dat 文件中的数据加载到我的数据库表中,因此我在我的一个 rake 任务 中执行了以下 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): 加载数据 INFILE '/var/lib/mysql/tmp/测试.dat'

可能是什么原因?

P.S. 我想到的一件事是 /var/lib/mysql/ 只能由 root 用户 访问,但我我不确定是不是这个原因。

最佳答案

尝试LOAD DATA LOCAL INFILE ...

关于mysql - 运行SQL语句时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313366/

相关文章:

ruby-on-rails - capistrano, rails, PG::ConnectionBad: fe_sendauth: 没有提供密码

ruby-on-rails - 当我运行服务器时缺少回形针

php - 如何接受 html 表单中的浮点值并将其发送到 MySQL DB

sql - MySQL - 基于日期加入

javascript - Javascript/jQuery/Coffeescript 在 Ruby on Rails 中的作用是什么?

mysql - rake db :migrate 的问题

当我关闭并重新打开终端时,ruby 和 rails 会返回到早期版本

json - 使用 ActionController::Metal 处理 ActiveRecord::RecordNotFound

mysql - 多连接SQL查询优化

mysql - 如何排序标签过滤搜索结果