MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

MySQL でファイルデータをインポートする際の 1290 エラーの解決方法

エラーシナリオ

cmd の mysql コマンドを使用して、学生情報テーブルにデータを追加します。データを一括で簡単にインポートするには、データのロード メソッドを使用します。

テキストデータ(xueshengxinxi.txt ファイル)を準備します。タブキーを使用してデータを区切ります。

「ファイルのテキスト データ パスをテーブル tab_load_data にロードする」を実行すると、エラーが表示されます。

#load data (データのロード) 構文、データをロードするには次のようになります。
 1 張三南 江西 1
 2 李思南 四川 2
 3 王武南 上海 1
 4 趙 六宇 湖北 3
 5 孫 7 娘 湖北 3
 6 周八南湖南1 

#テストデータテーブル create table tab_load_data (
  id int auto_increment 主キー、
  名前varchar(10),
  性別列挙型('男性','女性'),
  ネイティブvarchar(10)、
  f5 整数
 ); 
エラーの説明

ロード データを使用してファイル データをインポートすると、常に次のエラー (エラー 1290.....) が表示されます。

エラー 1290 (HY000): MySQL サーバーは --secure-file-priv オプションで実行されているため、このステートメントを実行できません

解決策のアイデア(プロセス)

1) エラー メッセージは secure-file-priv オプションが実行されており、ロード サービスを実行できないことを示しているため、MYSQL 構成ファイル「my.ini」で構成項目を見つけます。

2) 設定の前にMySQLサービスをシャットダウンします

3) my.ini を開き、キーワード「secure-file-priv」を検索してこのオプションを見つけ、このオプションをコメントアウトして保存し、MYSQL サービスを開始します。

4) 結果は依然として同じエラーです。説明 コメントは効果がありません。どうしたの?

「show variables like '%secure%'」コマンドを実行し、コメントアウトした後、 secure-file-priv の値が NULL になり、インポートとエクスポートが禁止されていることが示されました。

つまり、コメントアウトしても機能しません。構成ファイルのエントリを削除したくない場合は、ディレクトリを変更する必要があります。

5) パスを変更し、「show variables like '%secure%'」コマンドを実行して表示し、MYSQL を再起動します。


6) 再度データのロードを実行すると、実行は成功します。

より複雑な負荷の使用については、MySQL マニュアルを参照してください。 この時点で問題は解決します。

3. まとめ

この間違いから学びましょう:

1) データのロード: 外部のメモ帳ファイルからテーブルにデータをインポートできます。

このメモ帳のデータは、通常、「比較的整然としている」ことが求められ、1 行のテキストが 1 行のデータに対応し、行内の各フィールドの値を区切るために特定の文字 (タブなど) が使用されます。

2) secure-file-priv パラメータは、データのインポートおよびエクスポート操作の影響を制限するために使用されます。

たとえば、LOAD、SELECT...INTO OUTFILE ステートメントと LOAD_FILE() 関数を実行します。これらの操作にはファイル権限が必要です。

3) secure-file-priv パラメータがディレクトリ名に設定されている場合、MYSQL サービスでは、このディレクトリ内でのみファイルのインポートおよびエクスポート操作の実行が許可されます。

このディレクトリは存在している必要があります。MYSQL サービスはこれを作成しません。

4) secure-file-priv パラメータが NULL の場合、MYSQL サービスはインポートおよびエクスポート操作を禁止します。

以下もご興味があるかもしれません:
  • JavaはMYSQL LOAD DATA LOCAL INFILEを使用して大量のデータをMySQLにインポートします。
  • MySQL のロードデータステートメントによって発生するデッドロックを解決するケーススタディ
  • MySQL の Load Data レコードにおける改行の問題の解決方法
  • mysql ロード データ インファイルの使用 (40w のデータを mysql にインポートするのに 3 ~ 5 秒かかりました)
  • MySQLでデータをロードする方法
  • mysql データの読み込み infile
  • mysql Load Data InFile の使用
  • MySQL データベース データのロード 複数の用途

<<:  Linux で jar パッケージを起動してバックグラウンドで実行する方法

>>:  JavaScriptのモジュール性を理解する方法

推薦する

Reactでプロキシを有効にする2つの実用的な方法

プロキシを有効にする2つの方法React には、直接使用できるカプセル化された Ajax リクエスト...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

Vue プロジェクトの最初の画面のパフォーマンス最適化コンポーネントの実践ガイド

目次Vue ファースト スクリーン パフォーマンス最適化コンポーネント説明するインターセクションオブ...

スプレッド演算子のサンプルコードと JavaScript での応用

スプレッド演算子を使用すると、式をある時点で展開できます。スプレッド演算子は、複数のパラメーター (...

Linux sftp コマンドの使用法の概要

sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...

MySQLにインデックスを追加する方法

インデックスの簡単な紹介は次のとおりです。インデックスを追加する目的は、データベース クエリのパフォ...

MySQL における explain の役割の詳細な説明

1. MYSQLインデックスインデックス: MySQL がデータを効率的に取得するのに役立つデータ構...

vmware workstation12 インストール CentOS プロンプト VMware Player と Device/Credential Guard に互換性がない、理由と解決策

最新バージョンの WIN10 では、Microsoft は仮想化コンテナに基づくセキュリティ メカニ...

JavaScriptの擬似配列と配列の使い方と違い

擬似配列と配列JavaScript では、5 つのプリミティブ データ型を除き、関数を含め、その他す...

HTML ではスペースはどのように表現されますか (どのような意味ですか)?

Web 開発では、次のような文字によく遭遇します: &nbsp;これは実際には HTML が...

jsはCanvasを使用して複数の画像を1つの実装コードにマージします

解決 関数 mergeImgs(リスト) { const imgDom = document.cre...

CocosCreator でレイヤー管理に常駐ノードを使用する方法

CocosCreator バージョン: 2.3.4ほとんどのゲームにはレイヤー管理機能があり、例えば...

最新の超詳細な VMware 仮想マシンのダウンロードとインストールのグラフィック チュートリアル

目次1. 仮想マシンをダウンロードする2. 仮想マシンのインストールVMware のダウンロードとイ...

ユーザーエクスペリエンスの76の経験ポイントの要約

ウェブサイト体験の分類1. 感覚体験:快適性を重視した視聴覚体験をユーザーに提供します。 2. イン...

nginx を使用して http を https に変換するサンプルコード

最近、小さなプログラムを書いています。その小さなプログラムの公式ウェブサイトはhttpsを使用する必...