MySQL: Enable LOAD DATA LOCAL INFILE

后端 未结 18 1534
北海茫月
北海茫月 2020-11-22 09:30

I\'m running Mysql 5.5 on Ubuntu 12 LTS. How should I enable LOAD DATA LOCAL INFILE in my.cnf?

I\'ve tried adding local-infile in my config at various places but I\'

18条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-11-22 09:39

    You have to take care how you establish your mysqli connection. Full credit for this solution goes to Jorge Albarenque, source

    In order to fix it I had to:

    • Add local-infile=1 to the [mysqld] and [mysql] sections of my.cnf (as explained in the comments above)
    • Use mysqli_real_connect function (PHP documentation).

    The catch is that with that function you can explicitly enable the support for LOAD DATA LOCAL INFILE. For example (procedural style):

    $link = mysqli_init();
    mysqli_options($link, MYSQLI_OPT_LOCAL_INFILE, true);
    mysqli_real_connect($link, $host, $username, $password, $database);
    

    or object oriented

    $mysqli = mysqli_init();
    $mysqli->options(MYSQLI_OPT_LOCAL_INFILE, true);
    $mysqli->real_connect($host, $username, $password, $database);
    

提交回复
热议问题