ホームページ > データベース > mysql チュートリアル > Load Data Localを使用するときに「MySQLバージョンでは許可されていないコマンド」エラーを修正する方法は?

Load Data Localを使用するときに「MySQLバージョンでは許可されていないコマンド」エラーを修正する方法は?

DDD
リリース: 2025-01-24 09:46:09
オリジナル
661 人が閲覧しました

データロード時の MySQL の「コマンドは許可されていません」エラーを解決する

LOAD DATA LOCAL の使用中に MySQL エラー「エラー 1148: 使用されたコマンドはこの MySQL バージョンでは許可されません」が発生する場合は、LOCAL キーワードが無効になっていることを意味します。これはセキュリティ対策です。 データをローカルにロードするには、local-infile オプションを明示的に有効にする必要があります。

How to Fix the

クライアント側のソリューション:

最も簡単な解決策は、MySQL サーバーに接続するときに local-infile を有効にすることです。

<code class="language-bash">mysql -u myuser -p --local-infile mydatabase</code>
ログイン後にコピー

myuser を MySQL ユーザー名に置き換えます。-p はパスワードの入力を求められ、mydatabase はデータベースの名前に置き換えます。

重要なセキュリティ上の注意: local-infile を有効にすると、セキュリティ上の脆弱性が生じます。絶対に必要な場合にのみ有効にし、その後は無効にしてください。

サーバー側の解決策 (より永続的ですが、注意が必要です):

より永続的な解決策として、MySQL サーバー自体で local-infile を有効にします。 これには、MySQL 構成ファイル (Linux/macOS では my.cnf、Windows では my.ini) を変更する必要があります。 サーバー構成ファイルを変更する場合は、細心の注意を払ってください。 変更を誤ると、サーバーのセキュリティが危険にさらされる可能性があります。

my.cnf ファイルに次の行を追加または変更します:

<code>loose-local-infile = 1</code>
ログイン後にコピー

次に、変更を有効にするために MySQL サーバーを再起動します。 データのロードが完了したら、セキュリティ リスクを軽減するために loose-local-infile を 0 に戻すか、行を削除することを強くお勧めします。

代替アプローチ (推奨):

最も安全で一般的に推奨される方法は、

を完全に避けることです。代わりに、クライアントのローカル ファイル システムから直接データをロードしない方法を使用してください。 これには以下が関係する可能性があります:LOAD DATA LOCAL

  • の使用:mysqlimport このコマンドライン ツールは、ファイルからデータをインポートするためのより安全な代替手段です。
  • 最初にファイルをサーバーに転送します: scp、またはその他の安全なファイル転送方法を使用してデータ ファイルをサーバーにアップロードし、次に sftp ( キーワード) を使用して、サーバーのファイル システムからデータをロードします。LOAD DATA INFILE LOCAL
  • データベースを操作するときは、常にセキュリティを優先することを忘れないでください。
を有効にするのは一時的な措置である必要があり、通常は代替アプローチの方が安全であり、長期的なデータの読み込みには推奨されます。

以上がLoad Data Localを使用するときに「MySQLバージョンでは許可されていないコマンド」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート