MySQL の操作

Posted by muchag | Shell Script,さくらインターネット | 2015-12-10 (木) 11:35:33

【環境】
さくらインターネット:プレミアム
エラー
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

こんなエラーが出たとき
他の場合であれば、ちゃんとした対応が必要みたいだけど
さくらインターネットの場合は、MySQL が別サーバーになっているため
ホストの設定をしていないと、このエラーが出る。

つまり、ホストの設定を追加してあげればよいだけ。

ログイン
  1. $ mysql -h mysql***.db.sakura.ne.jp -u user_name -p
mysqldump
保存場所

mysqldump コマンドを実行したときのデフォルトの保存場所は

/home/user_name

なので、mysqldump などというディレクトリを1つ追加して
そちらへ保存されるようにする。

保存ファイル名

当然、指定するファイル名にも、パスを追加。

mysqldump/hoge.dump
コマンド
  1. $ mysqldump -h(ホスト名)-u(DB ユーザー名)-p(データベース名)(テーブル名:省略可)> mysqldump/hoge.dump
  2.  
  3. $ mysqldump -h mysql***.db.sakura.ne.jp -u user_name -p database_name > mysqldump/hoge.dump
Shell Script,さくらインターネット | 2015-12-10 (木) 11:35:33 |

CLI -> 基本

Posted by muchag | MySQL,コマンドプロンプト | 2015-05-22 (金) 11:41:07

MySQL のコマンドラインからの操作。

【環境】
MySQL:5.5.27
XAMPP:1.8.3
開始

私は MySQL を XAMPP から利用しているので
MySQL も XAMPP 内にある。

コマンドプロンプトを開いたら、下記3種の利用方法がある。

  • そのまま記述(環境変数を登録している場合)
  • MySQL\bin まで cd
  • フルパスで記述
コマンドラインツールの起動
  1. $ mysql -u ユーザ名 -p

これでパスワードの入力を促されるので
パスワードを入力し、認証が通ったら
ツールを利用できるようになる。

  1. mysql>

プロンプトが上記のようになれば、起動成功。

パスワードも含めて起動
  1. $ mysql -u ユーザ名 -pパスワード

-p オプション指定の直後にパスワードを記述する。
スペースを開けずに記述する ところがミソ。

データベースを指定して起動
  1. $ mysql -u ユーザ名 -D データベース名 -p
データベースの選択
  1. mysql> use データベース名
テーブル一覧表示
  1. mysql> show tables
終了
  1. mysql> quit
  2.  
  3. または
  4.  
  5. mysql> \q
書式
文末

SQL 文の最後に ;(セミコロン)を付けること。
なぜって、下記のようにカスケード記述ができるから?

カスケード記述

長い SQL 文を分割して入力できる。

  1. mysql> SELECT a, b, c, d, e FROM table_a, table_b WHERE table_a.id = table_b.table_a_id AND table_a.id = 1;
  2.  
  3. // 途中で Enter キーを押下すると、継続して SQL 文を記述できる
  4. mysql> SELECT a, b, c, d, e(Enter)
  5.     -> FROM table_a, table_b(Enter)
  6.     -> WHERE table_a.id = table_b.table_a_id(Enter)
  7.     -> AND table_a.id = 1;

というわけで、文末にセミコロンを付けないと、永遠に -> が出てくる。 🙄

メモ
コマンドエイリアス
コマンド エイリアス
quit \q
MySQL,コマンドプロンプト | 2015-05-22 (金) 11:41:07 |

tree コマンド

Posted by muchag | Windows,コマンドプロンプト | 2015-03-18 (水) 23:51:59

ちょー便利なコマンドを発見!

【環境】
Windows:7 Home Premium 64bit SP1
状況

今まで、Wordpress へディレクトリ構成を投稿する度に
下記のような書き方をしていた。

(openpne)\plugins\opMyPlugin
◇┣ apps ← アプリケーション格納用
◇┣ lib ← プラグイン独自クラス格納用
◇┣ test
◇┃◇┣ bootstrap
◇┃◇┃◇┣ database.php
◇┃◇┃◇┣ functional.php
◇┃◇┃◇┗ unit.php
◇┃◇┣ fixtures
◇┃◇┃◇┗ test_data.yml
◇┃◇┣ functional
◇┃◇┃◇┣ mobile_frontend
◇┃◇┃◇┃◇┗ skeletonActionsTest.php
◇┃◇┃◇┗ pc_frontend
◇┃◇┃◇◇◇┗ skeletonActionsTest.php
◇┃◇┗ unit
◇┃◇┃◇┗ model
◇┃◇◇◇◇◇┗ SkeletonTest.php
◇┗ dependencies.yml.sample

非常に面倒くさい。。。
 

出力結果

あまりにも面倒なので、何かないか Google 先生へ質問したところ
tree コマンドなるものを見つけた♪

結果はこんな感じ。

  1. ├─config
  2. │      filters.yml
  3. │      routing.yml
  4. └─modules
  5.    └─like
  6.        ├─actions
  7.        │      actions.class.php
  8.        │
  9.        └─templates
  10.                deleteSuccess.php
  11.                listSuccess.php
  12.                postSuccess.php
  13.                searchSuccess.php

なんと便利な・・・。

ただ、Wordpress の場合は、スペースを抜かれてしまうので
iG:Syntax Hiliter に一役買ってもらって表示。
 

書式
当該ディレクトリ

取得したいディレクトリまで移動すれば、とてもシンプル。

  1. $ tree

これでコマンドプロンプト上に表示される。
 

ディレクトリ指定

ディレクトリを指定したい場合は、下記の通り。

  1. $ tree [path to directory]

 

ファイルも取得

ファイル名も取得したい場合は、オプションを付ける。

  1. $ tree /f

 

テキスト保存

テキストファイルに落としたい場合は、下記のように。

  1. $ tree > result.txt

 

保存場所を指定

テキストファイルの保存場所を指定したければ、フルパスで記述。

  1. $ tree > [path to textfile]

 

  1. $ tree C:\Users\MonarchLX\Downloads /f > C:\Users\(username)\Documents\result.txt

これで、ダウンロードディレクトリの中身(ディレクトリとファイル)のツリーを
マイドキュメントに result.txt というファイル名で保存。
 

参考サイト

インストラクターのネタ帳
フォルダの階層構造をツリー状に−TREEコマンド
フォルダ構造・ファイル一覧をツリー状に−TREEコマンド

Windows,コマンドプロンプト | 2015-03-18 (水) 23:51:59 |

シンボリック リンク

Posted by muchag | Windows,コマンドプロンプト | 2015-01-01 (木) 15:09:53

長らくプロジェクトディレクトリと作業ディレクトリを分けていて、面倒だな~と思っていた。
今日、突然、「そうだ! シンボリック リンク を張ればいいんでないかしら」と思った。(遅

【環境】
[Windows] 7 Home SP1

グーグル先生に質問をしてみたところ

  • ハードリンク
  • ソフトリンク
    • ジャンクション
    • シンボリック リンク

という種類があるとのこと。

Windows では mklink というコマンドを使うらしい。

1回読んだだけでは、ピンとはこなかったけど
一応ちこっとだけ書き込み。
後々追記。
 

ハードリンク

1つの実態に複数のパスを登録するもの。
1つ目はもちろんデフォルトのパス。
その他に疑似パスを Windows へ登録しておくものみたい。

同一ボリューム上のファイルにのみ有効。
 

ソフトリンク
ジャンクション

同一PC上のフォルダにのみ有効。
 

シンボリック リンク

この機能が実装されたのはWindows Vista/Windows Server 2008以降。
管理者権限 で実行すること。

  1. // ファイルの場合
  2. $ mklink リンク ターゲット
  3.  
  4. // フォルダの場合
  5. $ mklink /D リンク ターゲット

※リンク=虚体、ターゲット=実体

注意点

リンク側を、先に Windows 上で作成してしまうとエラーになる。
ファイルを先に作るようなことはないかもしれないけど、フォルダも作っておいてはいけない。

 

スペース文字

パスを記述する際に、Program Files など、半角スペースの入ったディレクトリ名やらファイル名があると、コマンド実行時にエラーになる。
その時は、パスを “”(ダブルクォーテーション)で括ってやれば OK !

Linux 風

参考サイトを読む限り、下記で上手くいくと思ったんだけど
残念ながら、ダメ だった。。。

寧ろ、Windows 書式のままで読み込んだ。
ん~、前の時は、Windows 書式だとダメだった気がするんだけどな~。

サーバーOS:Linux
ローカルOS:Windows
というときに、パスの書式が異なるので困ることがある。

そういうときは、シンボリックリンクを利用して、Windows 書式を Linux 書式に変換することができる。
便利~♪

  1. // OK
  2. # mklink /d hoge C:\hoge
  3.  
  4. // NG
  5. # mklink /d hoge/moge C:\hoge

但し、/(スラッシュ)は使えないので、対象ディレクトリに名前を付けるイメージ。

参考サイト

+++ 上野メモ帳 +++:WindowsだけどLinux風のパスを使いたい(2010-10-20)

参考元サイト

Windowsでシンボリックリンクを作る
@IT:シンボリック・リンクとジャンクションとハードリンクの違い
 

2015-01-23 追記
削除
  1. // ファイルの場合(未検証)
  2. $ del リンク
  3.  
  4. // フォルダの場合
  5. $ rmdir リンク

※リンク=虚体

でも、普通にGUIで削除してよいらしい。。。(未検証)

Windows,コマンドプロンプト | 2015-01-01 (木) 15:09:53 |

Subversion .svn ディレクトリの削除

Posted by muchag | コマンドプロンプト | 2012-04-02 (月) 12:45:12

知り合いからソースをもらったはいいけど
中には .svn がいっぱい・・・。

というわけで、.svn ディレクトリだけを
再帰的に削除する方法をグーグル先生に質問してみた。

相変わらずありがたいサイトにすぐ出会え
参考にして実行したところ、上手くできたみたい。

【環境】
[OS] Windows 7
Windows

コマンドプロンプトで当該トップディレクトリまで移動して
以下を実行。

  1. for /R %i in (.svn) do rd /Q /S "%i"

 

Mac、Linux

こちらは試していない。

  1. rm -rf `find ./ -type d -name .svn ! -regex \.svn/. -print`

 

参考元サイト

WEB制作者の苦悩:[Subversion] .svnファイルを一括削除する
uthorofotus iruc:subversion の “.svn” を削除するワンライナー

コマンドプロンプト | 2012-04-02 (月) 12:45:12 |

cron

Posted by muchag | CRON,Tool | 2011-05-24 (火) 22:27:17

この度、cron を使うことになった。

まだまだわからないことが多いけど
せっかく学習したことをメモ。

【環境】
[Client OS] Windows XP SP2
[Tera Term] 4.69
[Server OS] 不明

 

ツール

先ずは、ツールより。
Tera Term
を利用した。
さくらへのシェル接続(SSH,Telnet)のやり方
 

設定ファイル
ファイル/ディレクトリ名 利用者 主な用途
/var/spool/cron/user 全ユーザ ユーザの自動タスク設定ファイル
/etc/crontab root 毎時、毎日、毎月、毎週の自動タスクのメイン設定ファイル
/etc/cron.hourly root 毎時実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.daily root 毎日実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.monthly root 毎月実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.weekly root 毎週実行される自動タスク設定ファイルを置くディレクトリ
/etc/cron.d root 上記以外の自動タスク設定ファイルを置くディレクトリ

 

crontab コマンド

Tera Term で接続した後、crontab コマンドにて
cron の設定を行う。

ユーザ名の指定は root ユーザのみ行える
 

表示
  1. crontab -l
  2.  
  3. crontab -l -u hoge // ユーザ名 hoge の設定ファイル

 

編集
  1. crontab -e
  2.  
  3. crontab -e -u hoge // ユーザ名 hoge の設定ファイル

 

削除
  1. crontab -r
  2.  
  3. crontab -r -u hoge // ユーザ名 hoge の設定ファイル

 

書式

cron は、1行に1つの命令を記述する。

  1. * * * * * command

* (アスタリスク)で日時の指定。
分・時・日・月・曜日の順 で5箇所ある。
* を指定すると単位時間当たり毎回実行、ということになる。

  1. 分 0~59 の数字で指定。* なら毎分実行
  2. 時 0~23 の数字で指定。* なら毎時実行
  3. 日 1~31 の数字で指定。* なら毎日実行
  4. 月 1~12 の数字、または jan~dec の文字で指定。* なら毎月実行
  5. 曜日 0~7 の数字(0,7 は共に日曜日、または sun~sat の文字で指定)。* なら毎曜日実行

 

複数の場合(数値の詳細書式)
リスト

例)0,10,30
 

範囲

例)1-6
 

リスト、範囲共存

例)5,10,30-45
 

インターバル(数値の詳細書式)

定期間隔を空けたい場合。
例1)分:20-50/5 -> 20,25,30,35,40,45,50
例2)日:5-24/6 -> 5,11,17,23
 

コマンド

環境変数は利用できない のでフルパス表記。
 
参考元サイト:cron の設定ガイド
 

入力手法

vi エディタと同様。
 
参考元サイト:vi エディタの使い方
 

試行

cron の command をテストで実行してみたい場合。

Tera Term のコマンドラインにて
command の部分を直書きして Enter ですぐ実行してくれる。
 

試行中の命令

試行中は Tera Term のカーソルが制御不能になるので
[ファイル]-[セッションの複製] で新しい画面を出せば
コマンドを利用できるようになる。

CRON,Tool | 2011-05-24 (火) 22:27:17 |

バッチファイルの作成

Posted by muchag | コマンドプロンプト | 2011-04-22 (金) 12:16:48

ん~、恐ろしく長い年月(恐らく20年以上)を経て
やっとこの話に着手することができた。

まぁ、避けてきただけなんだけど・・・。

でも、やってみたらなんていうことはない。
まぁ、ほんの基礎の基礎の基礎の基礎の基礎くらだとしても
わかりやすくて、簡単であった。

要は、コマンドプロンプトで入力することを
ファイルにまとめて記述するだけ。

  1. @echo off
  2. cd "C:\Documents and Settings\username\My Documents\Downloads\ASM_2_30\"
  3. java -jar asm.jar -a

(Java へのパスは通し済み)

Android 端末のスクリーンショットを撮影するための
Java プログラム「ASM」を走らせるコマンド。

テキストエディタにこれだけ記述し
「.bat」という拡張子で保存するだけ。
楽ちーん♪
 

注意点
@echo off

1行目は実行ログを表示させない命令。

そして、その命令自身も表示させないために @ をつける。
 

ファイル名、パス

ファイル名やパスを記述するに当たって
それらにスペースが含まれる場合は、
それらを (ダブルクォーテーション)で括る。

と、あちこちのサイトで解説されていた気がするのだが
ダブルクォーテーションなしでも動作した・・・。
最近のは進化したのかな。

また、パスはフルパスでないと反応しなかった。
 

pause

上記サンプルだと、バッチファイル実行後
コマンドプロンプトは処理が終わり次第勝手に閉じる。

もし勝手に閉じさせたくないなら
末尾に pause という命令を付け加える。
 

バッチファイルの置き場所

デスクトップに配置したバッチファイルは機能した。
My Documents/Batch Files/asm.bat も機能した。

ところが、別ドライブに配置したバッチファイルは機能しなかった。

現在のところ原因不明。

コマンドプロンプト | 2011-04-22 (金) 12:16:48 |