STUDY WITH ME / Reskilling

セキュリティでは、ゼロトラスト/マイクロセグメンテーション について情報を収集しています。 企業の活動では脱炭素経営について情報を収集しています。 インフラ設計・構築、ハードウェア選定から、アプリ、Javaチューニング、使えるDX、などITコンサルティング業務を会社員として従事しています。   また、脳内から零れ落ちているナレッジ(確認の意味で検索、ど忘れして検索、脳内のバージョンアップ、最新情報へのアップデート)をまとめています。(主に、運用系ツール、開発Java, C++, C#, Python, Swift など)

mysql のコマンドラインで tsvファイルを読み込ませるサンプル

Table of contents
mysql のコマンドラインで tsvファイルを読み込ませるサンプル
💬 Answer

MySQLでは LOAD DATA INFILE コマンドを用いて、TSV (タブ区切り値) ファイルをデータベースにインポートすることができます。以下に具体的なサンプルを示します:

まず、コマンドラインでMySQLにログインします。

mysql -u yourusername -p

その後、インポートしたいデータベースを選択します。

USE your_database;

そして、以下のコマンドを実行してTSVファイルを読み込みます。

LOAD DATA INFILE '/path/to/your/file.tsv'
INTO TABLE your_table
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
(your_column1, your_column2, your_column3, ...);

ここで、

  • '/path/to/your/file.tsv'はインポートしたいファイルのパスを表します。
  • 'your_table'はデータをインポートしたいテーブルの名前を表します。
  • 'your_column1, your_column2, your_column3, ...'はテーブルのカラム名を指定します。カラムの順序はTSVファイル内のフィールドの順序と一致している必要があります。

これらのコマンドを適切に置き換えて実行すれば、TSVファイルの内容がMySQLデータベースにインポートされます。

これをワンライナーで
💬 Answer

ワンライナーで書く場合、以下のようになります。

mysql -u yourusername -p yourpassword -e "USE your_database; LOAD DATA INFILE '/path/to/your/file.tsv' INTO TABLE your_table FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (your_column1, your_column2, your_column3, ...);"

ここで:

  • 'yourusername'はあなたのMySQLのユーザー名を表します。
  • 'yourpassword'はあなたのMySQLのパスワードを表します。
  • 'your_database'はデータをインポートしたいデータベースの名前を表します。
  • '/path/to/your/file.tsv'はインポートしたいファイルのパスを表します。
  • 'your_table'はデータをインポートしたいテーブルの名前を表します。
  • 'your_column1, your_column2, your_column3, ...'はテーブルのカラム名を指定します。カラムの順序はTSVファイル内のフィールドの順序と一致している必要があります。

ただし、この方法はパスワードがコマンドライン上で露出してしまうため、セキュリティ上あまり推奨できません。他のユーザが同じマシンで history コマンドを実行すると、パスワードを見ることができてしまいます。したがって、この方法はテスト環境や一時的な操作に限定した方が良いでしょう。

MariaDB コマンドでパスワードを安全に設定する方法

0