忍者ブログ
  • 2025.05
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2025.07
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2025/06/08 11:33 】 |
mysqlのSQL実行結果をCSVファイルとして取得
前提
WindowsのTeraTermでDBが存在するlinuxサーバーへアクセスする。
結果のCSVファイルを、操作元のWindows機にて取得する。





1)mysqlのSQL実行結果を取得
2)SQL実行結果をCSV形式へ変換
3)CSV形式のファイルを受信
の段階分け。


1)mysqlのSQL実行結果を取得
Teratermで
 mysql -u[USER] -p[PASSWORD] [DBNAME] < [sqlファイル名]
とすると、sqlファイルの内容の実行結果が標準出力で出力される。
ファイルとして保管するなら>[出力ファイル]のリダイレクトを行えばいい。

2)SQL実行結果をCSV形式へ変換
 sed -e "s/\t/,/g" < [SQL結果ファイル名]
とすると、CSV形式に変換した結果が標準出力で出力される。
このパラメータ記述は要はタブ文字をカンマに置換する処理。
(末尾のgはホールドスペースやパターンスペースという単語が出てくる話らしいが現状放置)
変換結果はその後ファイルとして受信する必要があるため、>[出力ファイル]のリダイレクトをする。

3)CSV形式のファイルを受信
 TeraTermでCSV形式への変換結果があるパスで
 ・[ファイル]→[SSH SCP]を選択
 ・下半分の入力画面のFromに変換結果のファイル名
  Toは受信ファイルの配置場所を入力
 ・Recieveボタンを押下
 これで受信される。



この辺は自動化したいなぁ。
シェルスクリプト書けば1と2の処理は自動化できるかね。
入力SQLファイルと出力パス(デフォルト値での動作可)を入力にして動作するような。
1と2は中間ファイルが不要ならパイプでつなげてしまえるわけで
PR
【2014/10/20 17:57 】 | 日常 | 有り難いご意見(0)
| ホーム | 日本測地系から世界測地系に変換>>
有り難いご意見
貴重なご意見の投稿














| ホーム | 次ページ>>