従来の mysql_connect にはclient_flag
、mysql パラメータの設定に使用できるパラメータ ' ' もあります。
client_flags パラメーターは、次の定数の組み合わせにすることができます: 128 (LOAD DATA LOCAL 処理を有効にする)、MYSQL_CLIENT_SSL、MYSQL_CLIENT_COMPRESS、MYSQL_CLIENT_IGNORE_SPACE、または MYSQL_CLIENT_INTERACTIVE。詳細については、MySQL クライアント定数に関するセクションを参照してください。SQL セーフ モードでは、このパラメーターは無視されます。
http://php.net/function.mysql-connect
例:
$db = mysql_connect($host, $user, $pass, FALSE, 128);
ただし、次のエラーが発生する場合もあります。
ERROR 29 (HY000): File '/var/www/.../mysql_import.csv' not found (Errcode: 13)
その場合、App Armor の設定を確認して、MySQL がファイルシステム上のインポート ファイルにアクセスできるようにする必要があります。
特に私は追加しました:
/import/ r,
/import/* rw,
MySQL に /import への読み取り/書き込みアクセスを許可するには
例: App Armor プロファイルのサンプル
cat /etc/apparmor.d/usr.sbin.mysqld
# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>
/usr/sbin/mysqld {
#include <abstractions/base>
#include <abstractions/nameservice>
#include <abstractions/user-tmp>
#include <abstractions/mysql>
#include <abstractions/winbind>
capability dac_override,
capability sys_resource,
capability setgid,
capability setuid,
network tcp,
/etc/hosts.allow r,
/etc/hosts.deny r,
/etc/mysql/*.pem r,
/etc/mysql/conf.d/ r,
/etc/mysql/conf.d/* r,
/etc/mysql/*.cnf r,
/usr/lib/mysql/plugin/ r,
/usr/lib/mysql/plugin/*.so* mr,
/usr/sbin/mysqld mr,
/usr/share/mysql/** r,
/var/log/mysql.log rw,
/var/log/mysql.err rw,
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
/var/run/mysqld/mysqld.pid w,
/var/run/mysqld/mysqld.sock w,
/run/mysqld/mysqld.pid w,
/run/mysqld/mysqld.sock w,
# Custom import folders start
# These folders will also be read/writeable by mysql.
/import/ r,
/import/* rw,
# Custom import folders end
/sys/devices/system/cpu/ r,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.sbin.mysqld>
}
その後、MySQL は/import
ディレクトリからファイルを読み取ることができました。