MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでLOAD DATA LOCAL INFILEを有効にする方法【SET GLOBALコマンドの使い方を解説】

MySQLでLOAD DATA LOCAL INFILE機能を有効にするには、SETコマンドにGLOBALキーワードを組み合わせて使用します。初期状態では、local_infileは無効(OFF)に設定されています。

現在のlocal_infileの設定を確認する

まず、以下の構文で現在の設定値を確認できます。

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';

実行結果は以下のとおりです。

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | OFF |
+---------------+-------+
1 row in set (0.01 sec)

local_infileを有効にする方法

local_infileを有効にするには、文字列の「ON」、ブール値の「true」、数値の「1」のいずれかを指定します。以下にそれぞれの構文を示します。

mysql> SET GLOBAL local_infile = 'ON';
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL local_infile = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL local_infile = true;
Query OK, 0 rows affected (0.00 sec)

設定が反映されたか確認する

MySQL 8.0.12の環境で、設定が有効になっているか確認してみましょう。

mysql> SHOW GLOBAL VARIABLES LIKE 'local_infile';

実行結果は以下のとおりです。

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.00 sec)

このように、SET GLOBALコマンドを実行した直後からlocal_infileはONに設定され、LOAD DATA LOCAL INFILEが使用できるようになります。

注意点:設定の永続化とクライアント側のオプション

SET GLOBALコマンドによる変更は一時的なものであり、MySQLサーバーを再起動すると元の設定に戻ります。恒久的に有効化したい場合は、設定ファイル(my.cnf)の[mysqld]セクションに「local_infile=1」を記載しておくことをおすすめします。また、クライアント側でも「--local-infile」オプションを付けて接続する必要がある点に注意してください。

  1. my.cnfでMySQLを最適化する方法:基本設定ガイド

    MySQLのパフォーマンスを最大限に引き出すには、設定ファイル「my.cnf」の適切なチューニングが欠かせません。本記事では、Windows環境におけるmy.cnfの場所の確認方法から、代表的な最適化パラメータの設定手順まで、順を追って解説します。1. データディレクトリの場所を確認するまずはmy.cnfファイルを開く必要があります。Windows環境では、以下のSQLクエリを実行することで、設定ファイルやデータが格納されているディレクトリの場所を確認できます。mysql> select @@datadir;実行結果+-----------------------------------

  2. MySQLで特定のカラムのデータをエクスポートする方法(INTO OUTFILEの使い方)

    MySQLで特定のカラムのデータをエクスポートする方法 MySQLでテーブルから特定のカラム(列)のデータだけをファイルに書き出したい場合は、SELECT文とINTO OUTFILEを組み合わせるのが最もシンプルで確実な方法です。この記事では、実際にテーブルを作成し、データを投入したうえで、特定のカラムをテキストファイルへエクスポートする手順を順番に解説します。 基本構文 特定のカラムをファイルに出力する際の基本構文は次のとおりです。 select yourColumnName from yourTableName into outfile yourLocationOfFile; このように