月別:4 月2008年

古楽器廉価盤CD

2008年4月30日(水)

ハルモニア・ムンディというCDのレーベルを御存知だろうか。LP時代から続く古いレーベルで、古楽器演奏の多いレーベルである。古楽器ファンなら必ず知っているレーベルだ。そのハルモニア・ムンディから信じられないCDセットが発売された。

「ハルモニア・ムンディ50周年記念50枚組」というセット物で、価格はなんと5,390円。1枚100円ちょっとだ。内容は次のとおり。

01 ドゥランテとアストルガとペルゴレージ
02 J.S.バッハ:オーボエ協奏曲集
03 J.S.バッハ:ゴルトベルク変奏曲 BWV.988
04 J.S.バッハ:音楽の捧げ物 BWV.1079
05 J.S.バッハ:モテット BWV.225-230
06 J.S.バッハ:ロ短調ミサ BWV.232
07 J.S.バッハ:ロ短調ミサ BWV.232
08 ヴィヴァルディとJ.S.バッハ
09 J.S.バッハ:無伴奏チェロ組曲 BWV.1007~1012
10 J.S.バッハ:無伴奏チェロ組曲 BWV.1007~1012

11 知られざるスペイン・バロック
12 17世紀のチェロのための作品集
13 ビバー:レクイエム イ長調/スッテファーニ:スターバト・マーテル
14 ボッケリーニ:チェロ協奏曲とシンフォニア集
15 ブクステフーデ:室内楽作品集
16 カッチーニ:麗しのアマリッリ~新しい音楽
17 フランソワ・クープラン:室内楽作品集
18 ジャコモ・ファッコとヴィヴァルディ
19 アントニ・フォルクレイ:ヴィオール小品集とクラヴサン小品集
20 フレスコバルディ:音楽の花束 Vol.1 主日のミサ

21 フレスコバルディ:音楽の花束 Vol.2 聖母のミサ
22 グルック:オペラ・セレナード「中国人」
23 オルランド・ラッスス:モテットとミサ曲
24 オルランド・ラッスス:レクィエム、マニフィカト、モテット
25 アントニオ・デ・リテレス:歌劇「四大元素」
26 リュリ:ディヴェルティスマン集
27 マショーとペロティヌスとクラウズラと作者不詳
28 J.S.バッハ以前の聖トーマス教会のカントールの作品集
29 マラン・マレ:三重奏のための幻想的小品組曲集
30 モンテヴェルディと同時代のマドリガーレ集

31 モンテヴェルディ:聖母マリアの夕べの祈り
32 モンテヴェルディ:聖母マリアの夕べの祈り
33 パッヘルベルとJ.S.バッハ以前のバッハのモテット集
34 パレストリーナ:宗教合唱作品集
35 ペルゴレージ:歌劇「奥様になった小間使い」
36 パーセルとヘンデル
37 無秩序の喜び~17世紀英国の2声部のコンソート
38 ラモー:歌劇「イポリートとアリシー」組曲
39 ラモー:歌劇「プラテー」「ダルダニュス」より管弦楽組曲
40 ラモー:バレエ付オペラ「ピグマリオン」

41 ルベル:表題付きトリオ・ソナタ全集
42 サント・コロンブ:「哀しみのトンボー」~ヴィオール作品集
43 アッレサンドロ・スカルラッティ:ソロ・カンタータ集
44 アレッサンドロ・スカルラッティ:ヨハネ受難曲
45 テレマン:木管楽器のための協奏曲集
46 ヴィヴァルディ:協奏曲集「四季」「海の嵐」「喜び」
47 ヴィヴァルディいろいろ
48 ヴィヴァルディ:チェロ・ソナタ集
49 ゼレンカ:神の御子のミサ曲/聖母マリアのためのリタニア
50 ゼレンカ、ピゼンデル:シンフォニアと協奏曲集

バロックの有名な曲から無名な曲まで様々。そしてこの値段では垂涎だ。

このセット物が発売されたことは、友人のリコーダー奏者からのメールで知った。私が住んでいるのは大変な田舎で近所にこのような古楽器物CDを売っている店などないので、CDはいつもネットから購入している。早速複数のサイトを調べた。ところが、HMVもタワーミュージックも、「ネット販売は終了」とのこと。そこで最後の頼みのアマゾンを調べた。あるにはあった。ただしHarmonia Mundi 50: The Fiftieth Anniversary Boxed Setのとおり、日本版ではなく米国からの輸入で、価格も倍近い¥9,016。日本版では5,390円であることを知っているいま、米国版を買うのは少々躊躇していた。

ところがこの件を知らせてくれた友人から、「明日新宿に出かけるのでタワーレコードで買ってきてやるよ」との親切なメールがあった。もちろん即依頼。めでたく買ってきてはもらった。

だが問題はあった。どうやって受け渡してもらえるか。重いCDセットを宅急便で送ってもらうのでは少なからぬ送料がかかる。それでは安い日本版を買った顔が立たない。そこで、少し先になるが私が古楽器オーケストラの練習で東京に出るときに落ち合って飲むことにした。それなら送料の必要は無い。。。と思ったのは甘かった。彼は大変な酒豪。CDを買ってきてもらったお礼に酒を奢ることになるが、そうするとどうみても米国輸入版のほうが安いだろう。でもこのCDセットがきっかけで1年半ぶりに旧交を温めるのも悪くはない、そう思っている。

mysql3.23とmysql5.0の共存

2008年4月29日(火)

本日ブログ開設。右のプロフィールにあるとおり、このブログではPython, TurboGears,バロックオーボエの話題が中心の予定である。しかし本日は初日なのに全然違う話題である。

先日、仕事で借りている専用サーバの移転作業を行った。サーバ中には10サイト近くサイトがあるためある程度の工数は予想したが、結果としてはそれを遥かに上回る工数を要してしまった。原因は、データベースmysqlのバージョンの違いである。

旧サーバはmysql3.23、新サーバはmysql5.0。文字コードで問題の発生する可能性はMLなどで事前に知ってはいた。確かにブログの移転で若干の問題は発生したが、/etc/my.cnfの設定、データベースの文字コード指定等でクリアできた。

問題はJava(Servlet)アプリケーション。これは医学データ収集用WEBアプリケーションで、5,6年前(だいぶ前)に作ったものだ。

文字コード(文字化け)問題はこのJavaアプリケーションでも発生した。ただこれも、/etc/my.cnfの設定、データベースの文字コード指定のみならず、mysql-connector-javaのバージョンや設定を変えることで、少し時間はかかったがクリアできた。しかしどうしても解決できない問題が発生してしまった。

それは、「TIMESTAMP NULL」問題である。良く知られたことだがMySQLのデータ型のTIMESTAMPは癖があり使わない方が良い。しかしこのJavaアプリではTIMESTAMP型は多用されていた。そして、TIMESTAMP値の0またはNULLを代入する際、TIMESTAMP型の開始日時である 1970-01-01 00:00:00 を設定していた。これはmysql3.23では問題なく動作する。しかしmysql5.0では例外が発生してしまう。

ここからが試行錯誤の始まりだった。mysql5.0ではJSTとUTCの9時間のずれを考慮しているようで、1970-01-01 09:00:01 は設定できる。しかし 1970-01-01 09:00:00 は設定できない。NULLを設定してみると、mysqlのTIMASTAMP型の振るまいでカレント日時が代入されてしまう。

この「設定できない」という意味は、Javaから設定できない、という意味である。コンソールのmysqlコマンドでは設定できる。mysqlコマンドでは 1970-01-01 09:00:00 は設定でき、SELECTでそれを見ると NULL として表示される。この振るまいをJavaから行いたいのだが。いろいろ試行錯誤し、調査の結果、これは不可能であることがわかった。このJavaアプリで必要な、TIMESTAMP型に初期値を設定するという処理がmysql5.0では不可能なのだ。

サーバ移転の期限は迫ってくるし、さあ困った。そこで思いついた案が、mysql5.0が動いているサーバに別途mysql3.23を動かし、共存させる、という方法だ。設定ファイルの/etc/my.cnfが悪さをしないかちょっと心配だったが、結果としては共存できた。そして件のJavaアプリからはmysql3.23側に接続し、問題なく動作している。

ここで、mysql5.0動作環境にmysql3.23を共存インストールする手順について簡単にまとめておく。

1: mysql5.0環境のセーブ
念のため、mysql5.0関連ファイルをセーブしておく。
(1)2ファイルセーブ
/etc/my.cnf
/etc/rc/init.d/mysqld

(2)mysqlデーモンを止めてから /var/lib/mysql セーブ

2: /etc/my.cnf を5.0専用にする
/etc/my.cnf 修正
[mysqld] を  [mysqld-5.0] に変更しmysql再起動。問題の無いことを確認する。

3: ソースインストール
実行は新ユーザ mysql3 とする。またmysql3.2の最後のバージョンのソース mysql-3.23.58.tar.gz を入手し、/tmp下に存在するものとする。

$ su -
# useradd mysql3
# mkdir /usr/local/mysql3.23
# chown mysql3 /usr/local/mysql3.23

# cd /usr/local/src
# cp -p /tmp/mysql-3.23.58.tar.gz .
# mkdir mysql-3.23.58
# chown mysql3 mysql-3.23.58
# su - mysql3

rootでの実行はここまで。以降は、新ユーザ mysql3 で実行する。

$ cd /usr/local/src
$ tar xvzf mysql-3.23.58.tar.gz
$ cd mysql-3.23.58
$ ./configure –prefix=/usr/local/mysql3.23 –with-extra-chrasets=all –with-charset=ujis

ところが上記最後の ./configure でエラーが発生した。

checking “LinuxThreads”… “Not found”
configure: error: This is a linux system and Linuxthreads was not
found. On linux Linuxthreads should be used. Please install Linuxthreads
(or a new glibc) and try again. See the Installation chapter in the
Reference Manual for more information.

調査の結果、これはMySQLのバグのようで、configureにオプションを付加すれば良いことがわかった。

$ ./configure –prefix=/usr/local/mysql3.23 –with-extra-chrasets=all –with-charset=ujis –with-pthread –with-named-thread-libs=-lpthread –disable-dependency-tracking –without-bench –without-debug –enable-assembler

次にmakeを行う。

$ make >make.log 2>makeErr.log

今度は次のエラーとなった。

mysqld.o:mysqld.cc:(.text+0×306e): more undefined references to `my_fast_mutexattr’ follow
collect2: ld returned 1 exit status

調査の結果、あるサイトの次の記述を参考にした。

my_fast_mutexattrはmysys/my_thr_init.cに
以下のように定義されています。

#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
#endif

この定義を次のように変更したら、makeは成功しました。

//#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
//#endif

目出度くmakeは成功した。そしてインストール。

$ make install >install.log 2>installErr.log

4: .my.cnf
/home/mysql3下に次の内容で .my.cnf (ドット’.'ファイルであることに注意)作成

[mysqld]
port=13306
basedir=/usr/local/mysql3.23
datadir=/usr/local/mysql3.23/var
socket=/tmp/mysql.sock3.23
log=/usr/local/mysql3.23/var/mysql.log

5: DB初期化
ユーザ mysql3で次を実行。

$ cd /usr/local/src/mysql-3.23.58
$ scripts/mysql_install_db

6: mysqlデーモン開始

$ /usr/local/mysql3.23/bin/safe_mysqld &

mysqlデーモンのプロセスIDは次のファイルに格納されている。
/usr/local/mysql3.23/var/xxxxx.pid (xxxxxは環境に固有)

そこで、次のコマンドでmysqlデーモンを停止できる。

$ kill `cat /usr/local/mysql3.23/var/xxxxx.pid`

7: mysql3.23 自動実行
/etc/rc.d/init.d/mysqld をコピーして mysql3 とし、上記の内容で修正。

8: mysqlコマンド接続
・mysqlデータベース接続

$ /usr/local/mysql3.23/bin/mysql –port=13306 –socket=/tmp/mysql.sock3.23 -uroot mysql

または

$ /usr/local/mysql3.23/bin/mysql -h127.0.0.1 –port=13306 -uroot mysql

なおこの初期状態ではrootにパスワードが設定されていないので至急設定する。
そして、mysql3.23側データベースアクセスは、/usr/local/mysql3.23/bin/下のコマンドを使用すればよい。

以上でmysql5.0とmysql3.23の共存に成功した。

 
サブタイトル カレンダー

 

2008 年 4 月
    5 月 »
 12345
6789101112
13141516171819
20212223242526
27282930  
秘書
サブタイトル profile

 

職業はソフトウェアエンジニア。趣味はバロックオーボエとモダンオーボエ演奏。このブログでは、Python・Go・Scala言語、そのWEBアプリケーションフレームワーク、そしてバロックオーボエ・クラシカルオーボエの話題を中心に書いて参ります。

サブタイトル 検索

 

サブタイトル 最近のトラックバック

 


QLOOK ANALYTICS