MySQLで特定のデータベースをダンプする

MySQL No Comments »

MySQL Ver14.12 Distrib 5.0.45, for redhat-linux-gnu (i686)での話です。
データベースをコピーしようともって、cronで保存してあったDUMPファイルをインポートしようと思ったらファイル形式が違うといわれてショック。
これじゃバックアップの意味ないじゃん?
原因は・・・なんだろ?
とりあえず目先の問題を解決することにして、mysqlをダンプします。

mysql -u root database > dump.sql


データベースがでかいほど時間がかかるのはお約束です。

さて、お次はインポート。
正確にはインポートとは言わないらしいけど。

mysql -u root database < dump.sql


これもデータベースが大きいとそこそこ時間がかかります。
つまり、<と>を切り替えるだけでok。

これで、めでたしめでたし。

mod_perlでライブラリが見つけられない

MySQL, Perl No Comments »

通常のCGIでは問題なく動くスクリプトを、いざmod_perl環境下に置いたとたんに動かなくなるのはよくある話。
変数や配列などの初期化がいい加減で、どんどん肥大化してしまうのは、日ごろから心がければ何とか回避できるものの、いまだに良くわからないエラーが次のもの。
「Undefined subroutine &ModPerl::ROOT::ModPerl::Registry::」
Registryの後には実行されるスクリプトのパスが入る。
つまり、mod_perl環境下で実行ファイルはモジュールとして扱われる。
このため、ライブラリやモジュールの読み込みまわりで順番がおかしくなり、ファイルが見つからないといわれることになるのだ。

この文字を検索すると以下のようなサンプルが表示される。

LoadModule perl_module modules/mod_perl.so

PerlRequire "/path/to/startup.pl"


SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI


# in startup.pl, i have this:
use lib "/path/to/webObjects";
use Apache2 ( );
use ModPerl::Registry ( );

use Carp;
use CGI;

use lib_webObjects;
1; 


startup.plを読めばいいらしいのだが、そのとおりにやってもサーバーエラーになる。Apacheのエラーログを見ても同じメッセージか載ってないので、構文エラーという前に効果がないのかもしれない。
日本語のサイトがひとつも見つからないときは、英語が苦手でなければと常に思う。
しかし、このエラーも.htaccessと、httpd.confにディレクトリで指定したときでは挙動が違うような気がする。
Apache起動時に読み込ませた環境では、実行時に読む.htaccessと違うのはもちろん当たりまえなのだが、解決方法が見つからなければいくら原因がわかっていてもしょうがないのである・・・

さてはて、いったいどうしたものか。
最悪の場合、ライブラリをやめて1つのファイルに全部詰め込む荒業に出るか?

今日買った本

MySQL No Comments »

久しぶりにジュンク堂池袋店へ行きました。
レジの応対が不気味なほど丁寧で、しかも対応してくれた娘がちょっと好み入っていたのでドキドキ・・・ってオヤジですな。

さて、衝動買いした本はこれです。

奥付では「2009年1月25日 初版」となっている新刊です。
ポケリ(ポケットリファレンス)シリーズは、まれに外れがあるけども割とお買い得なシリーズです。
ずっと使い続けているMySQLへの理解を深めるために、この1冊を衝動買いしてしまったというわけです。
さて、活用できるかどうかは自分の腕次第・・・

更新件数を取得する

MySQL, PHP No Comments »

PHPでMySQLを扱うときのお話。

データベースに変更のあった行の数を取得する

mysql_affected_rows();


ただし、UPDATEの場合、更新が行わなければ0が返る。

重複のみを抽出するSQL文

MySQL No Comments »

いい加減覚えられないので書いておく。

SELECT `mail`
FROM `address`
GROUP BY `mail`
HAVING COUNT( `mail` ) >1
LIMIT 0 , 30

MySQL文のエスケープ

MySQL, PHP No Comments »

基本的に使うのはMySQLなので。

mysql_escape_string()は非推奨で、
mysql_real_escape_string()がお勧めだったのか。

バイナリ使わないから、あんまり関係ないみたいだけど、
非推奨だと無くなるかもしれないし、切り替えますか。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン