MySQL のコマンドラインで補完機能を使う

MySQL でも Bash みたいに Tab 押してテーブル名やカラム名の補完機能ができると便利ですよね。設定ファイルに次のように書くと ok です。

[mysql]
auto-rehash

120819-0005.png

desc mt_b まで入力して Tab を押すと右の画像のようにテーブル名・カラム名を補完してくれます。

便利な機能なのですが、前回紹介した libedit の vi モードでは使えないことがあるようです。そういうときは ~/.editrc にカスタムのキーバインドを追加しましょう。

bind -v
bind ^I rl_complete

Bash でも MySQL でも vi(vim) !!

テキストエディタに vim を使い、ブラウザでも vimperator / pentadactyl その他を使ってると、知らぬうちに Esc を連打してたり、画面上に jjjjj ... などという文字が並んだりして、ハッと我に返ることがままあるものです。(ない?)

こうなると、あらゆるところを vim のキーバインドで過ごしたくなるものですが、意外と盲点なのがシェルのキーバインドです。

行頭に移動するために Ctrl + A したり、単語単位で移動するために Meta + F などとしていると違和感を感じませんか?

そうです! これこそ我ら Vimmer が忌み嫌う、あの、Escape Meta Alt Ctrl Shift などと言ってあざ笑う、Emacs のキーバインドそのままじゃないですか!

これは捨ててはおけません。一日の大半を過ごすターミナル上で、まさか Emacs のキーバインドを使って過ごす羽目になっていたとは! これは単なる背信を超えて悲劇的ですらあります。全世界の善良な Vimmer は望む望まざるに関わらず、あの、小指を駆使する非人間的で非効率的なキーバインドを強制されていたのです!

Continue reading

MySQL の CUI ツールだけをインストールする

サーバーはそのままにして、コマンドラインから使う mysql コマンドラインだけを最新版にしたいことがあったのでメモ。昔は configure のオプションを使って、

$ ./configure --without-server

このように指定することで可能だったのですが、最近のバージョンでは CMake を使うようになっており、やり方が変わってました。

Continue reading

rsync と SSH で MovableType をバックアップする

このブログは Mac mini を使ったサーバーで運営しています。

本来サーバーの OS バージョンアップというのはリリースから時が立って慎重に行うべきなのでしょうが、元々個人の勉強ブログだし、トラブルも勉強の一つだよね、ってことでMountain Lion に速攻アップデート。

とはいえ、ブログ自体はバックアップ環境で動かしておきたいです。これを機に、スクリプト一つでバックアップを行うようにしました。

バックアップスクリプト

#!/bin/sh
SSH_KEY=/path/to/id_rsa
TOPDIR=/Library/WebServer/Documents
LOCAL_PERL=/usr/bin/perl
REMOTE_PERL=/path/to/perl
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/local/mysql/bin/mysqldump
DB_USER=foo
DB_PASS=bar

# MovableType を構成するファイルを rsync
# SSH でログインしてファイルをコピーする
for i in mt mt-static blog; do
    /usr/bin/rsync -e "ssh -i $SSH_KEY" -avz foo@remora.cx:$TOPDIR/$i/ $TOPDIR/$i/
done

# Perl をインストールしているパスが違うのでスクリプトを修正
$LOCAL_PERL -i -ple "s/#!$REMOTE_PERL -w/#!$LOCAL_PERL -w/" $TOPDIR/mt/*cgi

# MySQL をリモートからローカルにバックアップしてリストア
ssh -i $SSH_KEY foo@remora.cx "$MYSQLDUMP -u$DB_USER -p$DB_PASS mt | /usr/bin/gzip" \
    | /bin/zcat | $MYSQL -u$DB_USER -p$DB_PASS mt

# 最後に Apache を再起動
/usr/sbin/apachectl graceful

これで完了。DNS サーバーの設定を書き換えると、バックアップ環境での動作が確認できました。

さて、これから Mountain Lion のインストールに入るわけですが、それ自体はあっさり完了。ただ、その後にトラブルに見舞われたので、備忘録として書いていきます。

続く。