3948: Loading local data is disabled; this must be enabled on both the client and server sides(ローカルデータの読込みは無効。クライアントとサーバーの両側で有効化が必要)
MySQL意味
LOAD DATA LOCAL INFILE でクライアント側のファイルからデータを読み込もうとしたが、クライアント側とサーバー側の一方または両方でこの機能が無効になっている。セキュリティ上の理由から、MySQL 8 では LOCAL はデフォルトで無効。
原因
サーバーで local_infile システム変数が OFF になっている、およびクライアントドライバで LOCAL INFILE が有効になっていない、のいずれかまたは両方。悪意あるサーバーがクライアントのファイルを読み取れる可能性があるため、この機能はデフォルトで制限されている。
対処方法
本当に必要な場合は両側で有効にする: サーバーで SET GLOBAL local_infile = 1; クライアントではドライバの LOCAL INFILE フラグを有効にする (例: 接続オプション allowLoadLocalInfile / --local-infile=1)。セキュリティの観点からは、ファイルをサーバー上に置いて LOCAL なしの LOAD DATA INFILE を使用するか、一括 INSERT/インポートツールを使用するのが望ましい。作業が終わったら local_infile を再度無効にする。
同じデータベースの他の項目
- 1194Table 'name' is marked as crashed and should be repaired(テーブル 'name' がクラッシュとしてマークされ修復が必要)
- 1615Prepared statement needs to be re-prepared(プリペアド文の再準備が必要)
- 1553Cannot drop index needed in a foreign key constraint(外部キー制約で必要なインデックスは削除できない)
- 1075Incorrect table definition; there can be only one auto column and it must be defined as a key(不正なテーブル定義。自動採番列は 1 つのみでキーとして定義が必要)
- 1055Expression not in GROUP BY (only_full_group_by)(GROUP BY にない式)
- 1267Illegal mix of collations(照合順序の不正な混在)
- 1030Got error N from storage engine(ストレージエンジンからエラー N を受け取った)