我正在学习MySQL并尝试使用一个LOAD DATA子句.当我使用它如下:
LOAD DATA INFILE "text.txt" INTO table mytable;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
MySQL服务器使用--secure-file-priv选项运行,因此无法执行此语句
我该如何处理这个错误?
我已经检查了同一错误消息的另一个问题,但仍无法找到解决方案.
我正在使用MySQL 5.6
在我的远程MySQL中,当我尝试执行此查询时,我收到MySQL错误代码:13.
查询 -
LOAD DATA INFILE
'/httpdocs/.../.../testFile.csv'
INTO TABLE table_temp
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\\r \\n'
(sku, qty);
Run Code Online (Sandbox Code Playgroud)
错误代码 : 13 Can't get stat of '/httpdocs/.../.../testFile.csv' (Errcode: 2)
一个.数据库userlogin具有所有授权权限.
CREATE USER 'userName'@'%' IDENTIFIED BY '************';
GRANT ALL PRIVILEGES ON * . * TO 'userName'@'%' IDENTIFIED BY '************' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `userName\_%` . * TO 'userName'@'%';
Run Code Online (Sandbox Code Playgroud)
湾 我还使用FTP工具将文件和文件夹权限设置为chmod 777(rwxrwxrwx)
我正在运行Ubuntu 12.04和MySQL 5.5好吧所以这是问题所在:
使用MySQL的MySQLDB模块,SQL命令:
cursor.execute("LOAD DATA LOCAL INFILE 'example.csv' INTO TABLE 'example_mysql_table' TERMINATED BY ',';")
Run Code Online (Sandbox Code Playgroud)
不行.我明白了ERROR 1148: The used command is not allowed with this MySQL version
我已经寻找了一段时间的解决方案,到目前为止,似乎其他有同样问题的人通过在[mysqld]和[mysql]下面的'my.cnf'添加"local-infile = 1"来修复它].这对我没用,我不知道为什么.
相关链接:
我有一个PHP脚本调用MySQL LOAD DATA INFILE来从CSV文件加载数据.但是,在生产服务器上,我最终得到以下错误:
用户拒绝访问...(使用密码:是)
作为一种快速解决方法,我将命令更改为LOAD DATA LOCAL INFILE有效.但是,使用此消息在客户端的服务器上同样的命令失败:
此MySQL版本不允许使用used命令
我认为这事做与服务器变量:local_infile = off如描述在这里.
请建议不涉及更改服务器设置的解决方法.请注意,安装在同一服务器上的phpMyAdmin实用程序似乎接受CSV文件,但我不确定它是否使用LOAD DATA (LOCAL) INFILE.
我想使用LOAD DATA INFILEstatement来导入表格中的数据.
如果该文件在同一系统上可用,则它可以正常工作并成功导入,但是当该文件位于另一个系统上时,它无法找到该路径.
任何人都可以解释如何使用该LOAD DATA INFILE语句从另一个系统或远程将数据导入MySQL表?
这是我的完整脚本.
我试图做一个rake任务,从目录中的文件收集数据并将它们加载到mysql中.
我修复了local-infile = 1,没什么用.它只是给我错误
namespace :db do
namespace :load do
desc "Load Properties into DB"
task :properties => :environment do
Mysql2::Client.default_query_options[:connect_flags] |= Mysql2::Client::LOCAL_FILES
@files = Dir.entries("db/property_website_scripts/")
connection = ActiveRecord::Base.connection()
for file in @files
next if file == "." || file == ".."
sql = "LOAD DATA LOCAL INFILE '#{Rails.root}/db/property_website_scripts/#{file}'
INTO TABLE properties
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\r\n'
(property_type,property_for,city,state,country......);"
connection.execute(sql)
end
#updating created at and updated at
Property.update_all({:created_at => Time.now, :updated_at => Time.now}, "created_at IS NULL")
end …Run Code Online (Sandbox Code Playgroud) R编程语言
这是我的查询:
LOAD DATA LOCAL INFILE '/home/ap_506/KF/export_2015-07-20.csv'
INTO TABLE test.raporty
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Run Code Online (Sandbox Code Playgroud)
我把local-infile=1文件放在/etc/mysql/my.cnf:
[mysql]
local-infile=1
[mysqld]
local-infile=1
Run Code Online (Sandbox Code Playgroud)
它仍然返回错误:
Error Code: 1148. The used command is not allowed with this MySQL version
Run Code Online (Sandbox Code Playgroud)
版:
SELECT VERSION() 收益: '5.5.40-0ubuntu0.12.04.1'
它工作正常,我可以使用以下方式通过终端上传:
mysql -h <server> -u <user> -p --local-infile <database>
Run Code Online (Sandbox Code Playgroud)
我也可以从WINDOWS上传这个
但这不是灵魂,因为我需要使用ubuntu并从R上传数据.你能帮帮我吗?
我正在研究MySQL 教程的这一部分,用于从 .TSV 文件加载数据。
我有这个数据文件:
name owner species sex birth death
Fluffy Harold cat f 1993-02-04
Claws Gwen cat m 1994-03-17
Buffy Harold dog f 1989-05-13
Fang Benny dog m 1990-08-27
Bowser Diane dog m 1979-08-31 1995-07-29
Chirpy Gwen bird f 1998-09-11
Whistler Gwen bird 1997-12-09
Slim Benny snake m 1996-04-29
Run Code Online (Sandbox Code Playgroud)
存储在此位置:
/Users/martinfrigaard/MySQLData/pet.txt
Run Code Online (Sandbox Code Playgroud)
我第一次尝试使用以下命令,
LOAD DATA INFILE '/pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r';
Run Code Online (Sandbox Code Playgroud)
它带来了以下错误:
ERROR 1148 (42000): The used command is not allowed with this …Run Code Online (Sandbox Code Playgroud) 谁知道如何在Ubuntu上的最新MySQL中打开加载本地infile设置?我编辑了 /etc/mysql/my.cnf文件并添加了
local-infile=1
Run Code Online (Sandbox Code Playgroud)
并在Perl代码中
dbConnectString=dbi:mysql:orthomcl:mysqllocalinfile=1
Run Code Online (Sandbox Code Playgroud)
但仍然得到
DBD::mysql::st execute failed: The used command is not allowed with this MySQL version...
Run Code Online (Sandbox Code Playgroud)
它由名为OrthoMCL的应用程序使用
我尝试配置my.cnf文件:
sudo vim /etc/mysql/my.cnf
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
local-infile = 1
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
local-infile = 1
Run Code Online (Sandbox Code Playgroud)
然后重启mysql服务器:
sudo service mysql restart
mysql stop/waiting
mysql start/running, process …Run Code Online (Sandbox Code Playgroud)