MySQL PHP configuration does not allow LOAD DATA LOCAL INFILE

12,665

I finally solved the issue in what seems like a ridiculously simple way. I've seen so many posts regarding this problem but the only solution I found that worked was one that was somewhat hidden in a stackoverflow post. It turns out the issue can be solved at connect time (which makes sense):

mysql_connect(HOST,USER,PASS,false,128);

The answer is right there on the manual page, it turns out.

The only thing I still don't understand is why this is necessary on my new Ubuntu install but has never been a problem on any other system, Ubuntu or CentOS.

I should also add that the above method is probably more portable than other methods, since you are setting the connection type in the code rather than in a config file.

Share:
12,665

Related videos on Youtube

Buttle Butkus
Author by

Buttle Butkus

I'm doing Magento programming and "theming" and also some other php projects. I also do a lot of linux server admin and mysql db design and query writing. I'm soooo ready to help. SOreadytohelp

Updated on September 18, 2022

Comments

  • Buttle Butkus
    Buttle Butkus over 1 year

    I tried adding lines to my.cnf

    [mysql]
    infile = 1
    [mysqld]
    infile = 1
    

    SHOW VARIABLES LIKE "%infile" displays true in mysql.

    But LOAD DATA does not work. I tried it in a PHP script and in phpMyAdmin.

    It only works if I start mysql from the command line with the --allow-infile flag

    mysql --local-infile -u root -p db_name
    

    But this did not solve the PHP problem.

  • Richmond
    Richmond over 11 years
    According to the MySQL manual, LOCAL INFILE must be enabled on the server AND the client connecting to it. So it wouldn't suffice to just turn it on on the server, you would also have to enable it (as you did) on the client.
  • DOOManiac
    DOOManiac over 7 years
    This is needed for Debian as well. Just found out the hard way after moving from CentOS...