我是MySQL新手的Java开发人员。
我想使用PHPMyAdmin执行加载数据操作。加载数据脚本经过验证,因为它在我的Windows操作系统配置上运行良好。在尝试从CSV加载数据时,我得到了:
此MySQL版本不允许使用used命令
版本详情如下
Mysql Server版本: 5.5.34-0
操作系统: ubuntu0.13.04.1(Ubuntu)
我已完成编辑my.cnf
,如下所示:
[mysql]
local-infile =1
#no-auto-rehash # faster start of mysql but no tab completition
.......................
[mysqld]
#
# * Basic Settings
#
local-infile =1
user = mysql
.........................
[client]
loose-local-infile=1
root
port = 3306
.........................
我尝试多次重启apache和mysql - sudo服务mysql重启 sudo service apache2 restart
对我来说没有什么能帮助我使用phpmyadmin执行操作。使用下面的命令
mysql -u root -p --local-infile test
我能够通过mysql提示成功执行加载数据操作。由于我在块中有多个CSV,并且每个块都有SQL加载脚本,所以我想使用phpmyadmin一次性运行它(用$分隔加载脚本)。
请帮我解决这个问题。 我已经在堆栈溢出下经历了以下答案
ERROR 1148: The used command is not allowed with this MySQL version
LOAD DATA LOCAL INFILE gives the error The used command is not allowed with this MySQL version
[UPDATE]
变量local_infile显示为' ON',我已在phpmyadmin上使用SQL查询验证了这一点
SHOW VARIABLES LIKE "local%"
加载脚本
LOAD DATA LOCAL INFILE 'full_dir_path/man_final.csv'
INTO TABLE `manufact_t`
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(man_sr,man_name, address, phone, fax, email, url,subdivision, @man_parent, man_id)
set man_parent=0;
答案 0 :(得分:7)
php.ini 的错误值为 mysql.allow_local_infile 。必须是 - mysql.allow_local_infile =开启
如果您在本地工作,可以尝试从 SQL查询中删除 LOCAL 。也许 MySQL 服务器设置不允许您使用 LOCAL 关键字
仅当您使用cPanel 时:问题是内置于cPanel接口的phpMyAdmin不使用使用apache构建的php。所以你可以整天重建apache并且它不会改变php的编译方式[来自cPanel论坛]
希望这会对你有所帮助。
答案 1 :(得分:1)
我的朋友,
请告诉我们以下步骤: -首先,删除当前安装的MySQL服务器
在终端sudo中运行命令apt-get --purge删除mysql-server
继续获取编译和安装源所需的源文件和其他包。
运行命令sudo apt-get install mysql-source-5.5 build-essential libncurses5-dev cmake
5.转到源所在的目录。
从源代码安装时最好的部分是您可以根据需要进行配置,如DENABLED_LOCAL_INFILE
请点击以下链接: -
http://www.sudo-juice.com/install-mysql-5-5-from-source-ubuntu-linux/
答案 2 :(得分:0)
我通过删除LOCAL关键字修复了此问题。请从命令中删除LOCAL关键字,它适用于mysql服务器版本5.5.34-0。