sql >> データベース >  >> RDS >> Mysql

エラー:ローカルデータの読み込みが無効になっています-これはクライアント側とサーバー側の両方で有効にする必要があります

    サーバー側またはクライアント側のいずれかでLOCAL機能が無効になっている場合、LOADDATALOCALステートメントを発行しようとするクライアントは次のエラーメッセージを受け取ります。

    ERROR 3950 (42000): Loading local data is disabled; this must be
    enabled on both the client and server side
    

    Mysqlのチュートリアルに従ってテキストファイルpet.txtをペットテーブルにロードしたいときに同じ問題が発生しました: https://dev.mysql.com/doc/refman/8.0/en/loading-tables.html

    オンラインで検索した後、次の手順で修正しました:

    1. 次のコマンドを使用してグローバル変数を設定します:
    mysql> SET GLOBAL local_infile=1;
    Query OK, 0 rows affected (0.00 sec)
    
    1. 現在のサーバーを終了します:
    mysql> quit
    Bye
    
    1. local-infileシステム変数を使用してサーバーに接続します:
    mysql --local-infile=1 -u root -p1
    

    この変数は、LOADDATAステートメントのサーバー側のLOCAL機能を制御します。 local_infileの設定に応じて、サーバーは、クライアント側でLOCALが有効になっているクライアントによるローカルデータの読み込みを拒否または許可します。サーバーにLOAD DATA LOCALステートメントを明示的に拒否または許可させる(クライアントプログラムとライブラリがビルド時にどのように構成されているかに関係なく)時間またはランタイム)、local_infileを無効または有効にしてmysqldを起動します。 local_infileは実行時に設定することもできます。

    1. データベースを使用して、ファイルをテーブルにロードします:
    mysql> use menagerie
    Database changed
    mysql> load data local infile '/path/pet.txt' into table pet;
    Query OK, 8 rows affected, 7 warnings (0.00 sec)
    

    動作しますか?

    参照:

    https://dev.mysql.com /doc/refman/8.0/en/load-data-local-security.html https://dev.mysql.com /doc/refman/8.0/en/source-configuration-options.html#option_cmake_enabled_local_infile https://dev.mysql.com /doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile



    1. Read Committedは、Postgres互換の分散SQLデータベースには必須です

    2. SQLでデータを変換するための関数はありますか

    3. SQL Server一括挿入–パート2

    4. postgresqlの文字列リテラルとエスケープ文字