📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 812行目: | 812行目: | ||
| エラー時の動作 || 即座に停止可能 || 転送開始後は途中停止不可 | | エラー時の動作 || 即座に停止可能 || 転送開始後は途中停止不可 | ||
|- | |- | ||
| セキュリティ || サーバ側ファイルアクセス権限が必要 || <code>local_infile</code> 設定が必要 | | セキュリティ || サーバ側ファイルアクセス権限が必要 || <code>local_infile</code> 設定が必要 | ||
|} | |} | ||
</center> | </center> | ||
<br> | <br> | ||
<code>LOAD DATA LOCAL INFILE</code> を使用するには、サーバ側とクライアント側の両方で <code>local_infile</code> を有効化する必要がある。<br> | |||
<br> | |||
<u>※重要</u><br> | |||
<u>MySQL 8.0.20以降では、<code>local_infile</code> はデフォルトで無効化されている。</u><br> | |||
<u>片方でも無効の場合、ERROR 3950 が発生する。</u><br> | |||
<br> | |||
現在の設定値の確認方法を以下に示す。<br> | |||
<br> | <br> | ||
<syntaxhighlight lang="mysql"> | <syntaxhighlight lang="mysql"> | ||
# local_infile の設定を確認 | # local_infile の設定を確認 | ||
SHOW VARIABLES LIKE 'local_infile'; | SHOW VARIABLES LIKE 'local_infile'; | ||
</syntaxhighlight> | |||
# | <br> | ||
サーバ側の設定方法を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="mysql"> | |||
# 方法1 : 実行時に動的変更 | |||
SET GLOBAL local_infile = 1; | SET GLOBAL local_infile = 1; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
< | <syntaxhighlight lang="ini"> | ||
< | # 方法2 : my.cnf (永続設定) | ||
<u> | [mysqld] | ||
local_infile=1 | |||
</syntaxhighlight> | |||
<br> | |||
クライアント側の設定方法を以下に示す。<br> | |||
<br> | |||
<syntaxhighlight lang="bash"> | |||
# 方法1: mysqlコマンドラインクライアントのオプション | |||
mysql --local-infile=1 -u user -p database | |||
</syntaxhighlight> | |||
<br> | |||
<syntaxhighlight lang="ini"> | |||
# 方法2: my.cnf (永続設定) | |||
[client] | |||
loose-local-infile=1 | |||
</syntaxhighlight> | |||
<br> | |||
MySQL 8.0.21以降では、<code>--load-data-local-dir</code> オプションを使用して、読み込み可能なファイルを特定のディレクトリに制限できる。<br> | |||
<br> | |||
<syntaxhighlight lang="bash"> | |||
# 特定ディレクトリからのみロードを許可 | |||
mysql --local-infile=0 --load-data-local-dir=/my/local/data -u user -p database | |||
</syntaxhighlight> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>LOAD DATA LOCAL INFILE はセキュリティリスクを伴う。</u><br> | |||
<u>悪意のあるサーバーがクライアントの任意のファイルにアクセスする可能性があるため、信頼できる接続先でのみ使用すること。</u><br> | |||
<br> | <br> | ||