LaravelでDB::statementを実行するとエラーが出るの続きのようなもの
事象
LaravelのDB::statementをつかってLOAD DATA LOCAL INFILEしようとすると、以下のようなエラーが出る
$ php artisan command:hogehoge
PDOStatement::execute(): LOAD DATA LOCAL INFILE forbidden (SQL: LOAD DATA CONCURRENT LOCAL INFILE ...
解決方法
これも設定漏れ
/usr/local/etc/my.cnfはMacの場合。
my.cnfの場所の確認は
$ mysql --help | grep my.cnf
とかでやってくださいー
/usr/local/etc/my.cnf
[server]
local_infile=true
config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => [
PDO::ATTR_EMULATE_PREPARES => true,
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
],
],