我是MySQL的Java开发人员。
我想使用PHPMyAdmin执行加载数据操作。加载数据脚本经过验证,因为它在我的Windows操作系统配置上运行得很好。在尝试从CSV加载数据时,我得到了:
此MySQL版本不允许使用所使用的命令
版本详细信息如下
Mysql服务器版本: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服务apache2重启
没有任何东西能帮助我使用phpmyadmin执行操作。使用以下命令时
mysql -u root -p --local-infile test
我能够通过mysql提示成功执行加载数据操作。由于我有多个CSV块和每个块的SQL加载脚本,所以我想使用phpmyadmin一次性运行它作为一个整体(加载脚本分隔为$)。
请帮我解决这个问题。我已经看过以下关于堆栈溢出的答案
错误1148:此MySQL版本不允许使用所用的命令
LOAD DATA LOCAL INFILE给出错误此MySQL版本不允许使用所使用的命令
[更新]
变量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 'rn'
IGNORE 1 LINES
(man_sr,man_name, address, phone, fax, email, url,subdivision, @man_parent, man_id)
set man_parent=0;
php.ini的mysql.allow_local_infile值错误。必须是-mysql.allow_local_infile=On
如果您在本地工作,可以尝试从SQL查询中删除LOCAL。也许MySQL服务器设置不允许您使用LOCAL关键字
只有当您使用cPanel时:问题是内置在cPanel接口中的phpMyAdmin没有使用使用apache构建的php。所以你可以整天重建apache,它不会改变php的编译方式[来自cPanel论坛]
希望这对你有帮助。
我的朋友,
请告诉我们以下步骤:-
首先,删除MySQL服务器的任何当前安装
在终端中运行命令sudo apt-get--purge删除mysql服务器
继续获取编译和安装源代码所需的源文件和其他包。
运行命令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/
我已经通过删除LOCAL关键字解决了这个问题。请从命令中删除LOCAL关键字,它将适用于mysql服务器版本5.5.34-0。