LOAD DATA LOW_PRIORITY LOCAL INFILE 'C:/Program Files/Borland/CBuilder6/Projects/DBclient/Book1.csv' INTO TABLE... 如还不行,就可能是C:/Program Files/的问题了, 请将Book1.csv 复制到 C:\ 再试一次
我用MySQL-Front试过了,依旧报错“Can't get stat of 'FILENAME' (Errcode: 2)”
bcb+ado+mysql查询 blob字段有没有问题,我的有问题报告说 table does not exist ,请问你怎么解决要打什么补丁请告诉我谢谢
http://expert.csdn.net/Expert/topic/1703/1703427.xml?temp=.6563379呵呵, 很不幸, 你在使用 mysql.exe --local-infile 无法实现功能 而 mysqlc.exe 却可以 用 API 连接时 mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) 的确是产生作用的,屏幕结果如下:Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-1998 Microsoft Corp.D:\>cd mysql\binD:\mysql\bin>mysql --local-infile=1 -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 33 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test; Database changed mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS -> TERMINATED BY ',' LINES TERMINATED BY '\n' (id,value); ERROR 1148: The used command is not allowed with this MySQL version mysql> exit; ByeD:\mysql\bin>mysqlc -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 34 to server version: 4.0.12-nt-logType 'help' for help.mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS -> TERMINATED BY ',' LINES TERMINATED BY '\n' (id,value); Query OK, 14 rows affected (0.00 sec) Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql> 按照 MySQL 的要求, 在服务器端需要在 my.cnf/my.ini 中加入 [mysqld] local-infile =1 # 当然如果不加的话 mysqld 服务也是默认将这个开关打开的, # 这是为了与以前的程序兼容在客户端同样要将它打开 通常来说客户端可以分两类 1:MySQL 安装包中自带的 mysql.exe mysqlc.exe 2: 通过 API 访问在 MySQL 参考手册中说明,为了与以前的程序兼容 mysql.exe mysqlc.exe 在编译时默认是打开 local-infile 开关的, 可以事实却不能使我相信?? 不论我以默认的 mysql -u root -p 还是 mysql --local-infile=1 -u root -p 登录 均不能正确执行 LOAD DATA LOCAL INFILE 而只有 mysqlc.exe 程序可以,当然它是不可以使用 mysqlc --local-infile 开关的, 我查阅了 MySQL 的网站支持, 也有好多人有这样的疑惑, 在十几个回复中只有一人说通过 mysql --local-infile=1 实现了正常操作 而通过 API 访问 MySQL 则顺利地多, mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) 是起作用的,一个更奇怪的, 在 MySQL 4.1 的 mysql.exe 中,--local-infile=0 任何作用, Microsoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-1998 Microsoft Corp.D:\>cd mysql41D:\MySQL41>cd binD:\MySQL41\bin>mysql --local-infile=0 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test; Database changed mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS TERMINATED B Y ',' LINES TERMINATED BY '\n' (id,value); Query OK, 14 rows affected (0.01 sec) Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql> exit; ByeD:\MySQL41\bin>mysql --local-infile=1 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 44 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test; Database changed mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS TERMINATED B Y ',' LINES TERMINATED BY '\n' (id,value); Query OK, 14 rows affected (0.00 sec) Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql>
如还不行,就可能是C:/Program Files/的问题了,
请将Book1.csv 复制到 C:\ 再试一次
会不会是你的PHP问题,
建议你用MySQL-Front 执行一下你的SQL,看有没有什么发现
建议各位用MySQL-Front运行你的SQL语句,看有什么发现
很不幸,
你在使用
mysql.exe --local-infile 无法实现功能
而
mysqlc.exe 却可以
用 API 连接时
mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0)
的确是产生作用的,屏幕结果如下:Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-1998 Microsoft Corp.D:\>cd mysql\binD:\mysql\bin>mysql --local-infile=1 -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test;
Database changed
mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS
-> TERMINATED BY ',' LINES TERMINATED BY '\n' (id,value);
ERROR 1148: The used command is not allowed with this MySQL version
mysql> exit;
ByeD:\mysql\bin>mysqlc -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34 to server version: 4.0.12-nt-logType 'help' for help.mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS
-> TERMINATED BY ',' LINES TERMINATED BY '\n' (id,value);
Query OK, 14 rows affected (0.00 sec)
Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql>
按照 MySQL 的要求,
在服务器端需要在 my.cnf/my.ini 中加入
[mysqld]
local-infile =1
# 当然如果不加的话 mysqld 服务也是默认将这个开关打开的,
# 这是为了与以前的程序兼容在客户端同样要将它打开
通常来说客户端可以分两类
1:MySQL 安装包中自带的 mysql.exe mysqlc.exe
2: 通过 API 访问在 MySQL 参考手册中说明,为了与以前的程序兼容
mysql.exe mysqlc.exe 在编译时默认是打开 local-infile 开关的,
可以事实却不能使我相信??
不论我以默认的 mysql -u root -p 还是 mysql --local-infile=1 -u root -p 登录
均不能正确执行 LOAD DATA LOCAL INFILE
而只有 mysqlc.exe 程序可以,当然它是不可以使用 mysqlc --local-infile 开关的, 我查阅了 MySQL 的网站支持,
也有好多人有这样的疑惑,
在十几个回复中只有一人说通过 mysql --local-infile=1 实现了正常操作
而通过 API 访问 MySQL 则顺利地多,
mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) 是起作用的,一个更奇怪的,
在 MySQL 4.1 的 mysql.exe 中,--local-infile=0 任何作用,
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-1998 Microsoft Corp.D:\>cd mysql41D:\MySQL41>cd binD:\MySQL41\bin>mysql --local-infile=0
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test;
Database changed
mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS TERMINATED B
Y ',' LINES TERMINATED BY '\n' (id,value);
Query OK, 14 rows affected (0.01 sec)
Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql> exit;
ByeD:\MySQL41\bin>mysql --local-infile=1
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44 to server version: 4.0.12-nt-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test;
Database changed
mysql> LOAD DATA LOCAL INFILE 'L:/me.csv' INTO TABLE test.me FIELDS TERMINATED B
Y ',' LINES TERMINATED BY '\n' (id,value);
Query OK, 14 rows affected (0.00 sec)
Records: 14 Deleted: 0 Skipped: 0 Warnings: 0mysql>
用其他的尝试下吧。