有两点要注意,
一你的服务器端要将 local_infile 参数打开
mysql> SHOW VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
1 row in set (0.00 sec)mysql>
同时客户端也要打开这个参数

解决方案 »

  1.   

    没有这个参数嘛!
    默认是都可以的啊!
    格式:
    LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]
        INTO TABLE tbl_name
        [FIELDS
            [TERMINATED BY '\t']
            [OPTIONALLY] ENCLOSED BY '']
            [ESCAPED BY '\\' ]]
        [LINES TERMINATED BY '\n']
        [IGNORE number LINES]
        [(col_name,...)]LOAD DATA INFILE语句从一个文本文件中以很高的速度读入一个表中。如果指定LOCAL关键词,从客户主机读文件。如果LOCAL没指定,文件必须位于服务器上。(
      

  2.   

    我的my.ini文件不可以修改,改了以后就起不动服务!
    只能改my-huge,my-large,my-media,my-small等的conf文件!!
      

  3.   

    TO lumberjake(伐木工) 你怎么改的呀?
      

  4.   

    local_infile  | ON
    默认就是开的阿!
      

  5.   

    In MySQL 3.23.49 and MySQL 4.0.2 LOCAL will only work if you have not started mysqld with --local-infile=0 or if you have not enabled your client to support LOCAL. If you don't configure MySQL with --enable-local-infile, then LOAD DATA LOCAL will be disabled by all clients, unless one calls mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0) in the client. See section 8.1.3.163 mysql_options().
      

  6.   

    to shuixin13(犬犬(心帆)) 
    我这里没有连接客户机阿  就是在自己机子上的load data阿
    我的local_infile是on的阿 
    请高手指点阿 我要使用它阿  但是现在都不知道怎么使用阿
      

  7.   

    呵呵,
    很不幸,
    你在使用 
    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>
      

  8.   

    谢谢你 可以插进去了 但是为什么mysql里面不可以  只能在mysqlc那里呢 ?
      

  9.   

    呵呵,
    按照 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) 是起作用的,
      

  10.   

    再给你一个更奇怪的,
    在 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>
      

  11.   

    为什么在我的my.ini文件没有local-infile =1这一行?
    我要是这样运行的话mysql --local-infile=1 -u root -p 回车了之后怎么出现Enter password:这个要求我输入的究竟是什么密码?我不输直接按回车出现的错误是:
    error 1045: Access denied for user:'[email protected]'(Using password :NO)  这究竟是什么问题我倒现在还是比较模糊  谢谢指点
      

  12.   

    为什么我照着你的方法mysql --local-infile=1 -u root -p 这样登录还是不能正确使用LOAD DATA LOCAL INFILE
      

  13.   

    你上面说的那两个操作都不能实现阿 over不知道怎么回事
    但是要是用mysqlc的时候可以操作 而且我后面的那些terminated都不用输  
    直接就是load data local infile "111.txt" into table table_name;
    这样就可以操作成功了
    你说后面这个FIELDS TERMINATED B
    Y ',' LINES TERMINATED BY '\n' (id,value);
    不输 会不会影响操作?
      

  14.   

    >>>> 为什么在我的my.ini文件没有local-infile =1这一行?MySQL 服务程序默认就是打开这个开关的也可以自己在 my.cnf/my.ini 中加入[mysqld]
    local-infile =1
    #  当然如果不加的话 mysqld 服务也是默认将这个开关打开的,
    #  这是为了与以前的程序兼容
    >>>> 我要是这样运行的话mysql --local-infile=1 -u root -p 回车了之后
    >>>> 怎么出现Enter password:这个要求我输入的究竟是什么密码?
    >>>> 我不输直接按回车出现的错误是:
    >>>> error 1045: Access denied for user:'[email protected]'(Using password :NO)
    >>>  这究竟是什么问题我倒现在还是比较模糊  谢谢指点
    这主要是你的用户权限问题,>>>> 为什么我照着你的方法mysql --local-infile=1 -u root -p 
    >>>> 这样登录还是不能正确使用LOAD DATA LOCAL INFILE前面的我已说明了,这可以是 BUG
    >>>> 但是要是用mysqlc的时候可以操作 而且我后面的那些terminated都不用输的确如此,
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n' 这两个字符是默认的字段与记录分隔字符
    如果你的文本文件中数据字段与记录分隔不是用这它,
    可能就要明确指定一下了