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のモジュール性を理解する方法

推薦する

Mysql5.7 のグループ連結関数を使用するときにデータが切り捨てられる問題に対する完璧な解決策

一昨日、本番環境でGROUP_CONCAT関数を使用して選択したデータが切り捨てられ、最大長が102...

Vue の長いリストをすばやく読み込む方法

目次背景メインコンテンツ1. コンポーネントの比較2. 実装のアイデア3. キーメソッドソースコード...

CSSの優先度を理解する2つの方法

方法1: 値を追加する公式の説明を見るには MDN にアクセスしてください。優先度はどのように計算さ...

jQuery で従業員管理登録ページを実装する

この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...

vue3+vite プロジェクトで svg を使用する方法の詳細なグラフィック説明

今日、vue3+viteプロジェクトの実践で、svgを使用する場合、以前の記述方法が使用できないこと...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

重複したMySQLレコードを現場でチェックし、処理する実践的な記録

目次序文分析するデータ合計繰り返し率どこにあるかと持っているかの違い要約する序文私はソフトウェアの導...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

Apache Superset を使用して ClickHouse データを視覚化する 2 つの方法

Apache Superset は、データを表示および探索する方法を提供する強力な BI ツールで...

MySQL における Datetime と Timestamp の使用の概要

目次1. MySQL で現在の時刻を表現するにはどうすればよいでしょうか? 2. TIMESTAMP...

docker+gitlab+gitlab-runnerの詳細なデプロイメント

環境サーバー: centos7クライアント: ウィンドウCentos7 に docker+gitla...

Webフロントエンドインターフェースの設計に必須のスキル

[必須] ユーザーインターフェースPhotoShop/花火デザインアーティストと協力して、スケッチを...

Vueはシンプルな計算機を実装する

この記事では、参考までに、Vue の具体的なコードで簡単な計算機を実装する方法を紹介します。具体的な...

フォームで完全な選択または逆選択効果を実現する JavaScript

この記事では、フォームの完全選択または逆選択を実現するためのJavaScriptの具体的なコードを参...

CSS変数を使用して、クールで素晴らしいフローティング効果を実現します。

最近、Grover の Web サイトで楽しいホバー アニメーションを見つけ、自分自身のインスピレー...