MySQL PHP configuration does not allow LOAD DATA LOCAL INFILE
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.
Related videos on Youtube
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, 2022Comments
-
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
flagmysql --local-infile -u root -p db_name
But this did not solve the PHP problem.
-
Richmond over 11 yearsAccording 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 over 7 yearsThis is needed for Debian as well. Just found out the hard way after moving from CentOS...