--- title: ターミナルから mysql の命令を実行する author: kazu634 date: 2009-11-11 url: /2009/11/11/_1390/ wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4919;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - mysql ---

基本的に mysql を実行すると、インターラクティブに命令を実行することになります。これをシェル上から実行できるとうれしいと思い、調べてみました。

するとこんな記述を発見しました:

コマンドの実行結果をmysqlコマンドに渡して実行し、ファイルに出力 (1)

$ cat (SQL)ファイル名 | mysql [-t -N] データベース名 > (OUT)ファイル名

コマンドの実行結果をmysqlコマンドに渡して実行し、ファイルに出力 (2)

$ echo "select * from テーブル名" | mysql [-t -N] データベース名 > (OUT)ファイル名

オプション「-t」、「-N」については、ファイルに記述したSQL文を実行するを参照してください。

MySQLクイック・リファレンス

というわけで自分でも実行してみました。

~/bin on kazu634 [508] $: echo "select * from Starbucks where id=1\G" | mysql5 -uuser -ppassword -h hostname databasename
*************************** 1. row ***************************
id: 1
shopname: 錦糸町 丸井店
post_code: 130-0022
address: 東京都墨田区江東橋3-9-10
tel: 03-3631-4701
hours: 月~木: 7:0022:30金: 7:0022:30土: 7:0022:30日: 7:0022:30祝日: 7:0022:30##休日:不定休
nearby: 錦糸町駅 ( JR総武本線、JR総武線 ) 徒歩3分 丸井錦糸町店
lat: NULL
lng: NULL