Category: MySQL
MySQL 4.1.22に更新
November 28th, 2006MySQL 4.1.21に更新
August 7th, 2006databases/mysql41-{server,client}のportsを4.1.20から4.1.21に更新。
バージョン間の変更点は、
参照。
あと、余談になるけど、私の環境では、MySQLサーバに限らず、個々のデーモンはなるべくjail環境下において切り分けることにしている。
そして、portsに更新等があれば、ホスト側の/usr/portsを、jail環境下の/usr/portsに、mount_nullfsを利用して使い回し、portupgrade等を使って、jail内で再構築することにしている。
しかし、Apache等のjail環境では問題はないのに、なぜか、MySQLサーバのjail環境だけ、MySQLサーバを更新した後、マウントした/usr/portsを解除しようとしても、
umount: unmount of /usr/home/jail/db1/usr/ports failed: Device busy
と怒られていた。
どうやら、/usr/local/etc/pkgtools.conf内の
- BEFOREINSTALL
- AFTERINSTALL
の記述で、インストール前後に、自動的にデーモンを停止・起動し直すようにしていると、MySQLサーバが、jail側の/usr/ports以下をworking directoryとして使用してしまうらしい。
もしやと思って、今回、
AFTERINSTALL = {
# Automatically start MySQL server
- 'databases/mysql41-server' => '/bin/sh ' + localbase() + '/etc/rc.d/mysql-server start',
+ 'databases/mysql41-server' => '/bin/sh -c "cd && ' + localbase() + '/etc/rc.d/mysql-server start"',
}
のように、サーバを起動する際、一旦、作業ディレクトリをデフォルトのものに戻してから、起動するように設定してみたら、上記のようなマウント解除できないという問題は発生しなくなりました。
MySQL 4.1.20に更新
June 4th, 2006MySQL 4.1.19に更新
May 7th, 2006databases/mysql41-{server,client}のportsを4.1.18から4.1.19に更新。
バージョン間の変更点は、
参照。
ちょうど、FreeBSD 6.1-RELEASEに切替えたことから、/etc/rc.d/ldconfigがベースシステムに組み込まれて、従来、MySQLのportと一緒にインストールされてたmisc/ldconfig_compatのportは、導入されなくなった。
でも、MySQLのportsの方を更新した後も、これが残っていたので、
# pkg_delete -f /var/db/pkg/ldconfig_compat-1.0_7 # pkgdb -F
とアンインストールして、依存するものが残っていたら、関係をDELETEするようにした。
また、
で起きていた
ERROR 1071 (42000): Specified key was too long; max key length is 1024 bytes
という問題は直っていなかった。
ま、これはテーブル作成時に、インデックスに使うキーの長さを指定しておけば良いだけかもしれないけど。それで今のところ、問題は出ていないようでもあるし。
あと、6.1-RELEASEでは、USE_RC_SUBRで、インストールされるetc/rc.dスクリプトが、6.0の時と名前が違っていたことにはまってしまった…。
例えば、mysql41-serverの場合、6.0の時は、etc/rc.d/mysql-server.shとしてインストールされていたものが、6.1の時では、etc/rc.d/mysql-serverとして、インストールされていた(.sh
がつかない)。
pkgtools.confのBEFOREDEINSTALや、AFTERINSTALの箇所で、上記のようなスクリプトの名前を指定して、インストール前後に自動的にデーモンを停止・起動するよう設定している場合、確認する必要がある。
MediaWikiを1.5.8から1.6.3にアップグレード
April 15th, 2006以前、書いた
では、インストールするのに利用したwww/mediawikiのportは、1.5系列のものを扱っていましたが、先日、1.6系列のものに切り替わったようなので、アップグレードしてみました。
1.5系列間でのアップグレードは、ほとんど(上書きするだけで)移行に問題ありませんでしたが、1.5系列から1.6系列への移行は、テーブル構造が若干、変更されたようで、特別な作業が必要になります。
主な手順は、
を参照して下さい。
以下は、私が行った作業メモです(問題があったので、手順通り行わないように)。
MySQL 4.1.18に更新
February 14th, 2006databases/mysql41-{server,client}を4.1.16から4.1.18に更新。
バージョン間の変更点は、
参照。
重大なバグがあったそうで、4.1.17のバージョンは、リリースされなかった模様。
mysqlのrootユーザについての補足
February 12th, 2006mysqlでは、同名のユーザでも、接続元が違えば、別ユーザとして扱われます。
例えば、先日のjail内にインストールしたmysqlサーバの場合で言うと、UNIXソケット用(通常、/tmp/mysql.sockでのMySQLクライアントのデフォルトの接続)の
- root@localhost
と、自己に振り当てられたIPアドレス用の
- root@'ホスト名'
という2つのrootユーザが作成されますが、それぞれは独立したユーザです。
mysql> SELECT User, Host FROM mysql.user; +----------+--------------+ | User | Host | +----------+--------------+ | | 192.168.0.20 | | root | 192.168.0.20 | | | localhost | | root | localhost | | wikiuser | 192.168.0.21 | +----------+--------------+ 5 rows in set (0.01 sec)
(なお、IPアドレスの部分は各自のホスト名に置き換えて読んで下さい)
前回は、それぞれのrootユーザにパスワードを設定して認証を設けました。でも、管理者権限のあるユーザが2つも存在するのは気持ち悪いと言う方もいるでしょう。ここでは、前回作成したmysqlにおけるrootユーザを一つにまとめる方法について、書いています。
MediaWikiのインストール メモ
February 7th, 2006以下は、FreeBSDにMediaWikiをインストールした際のメモです。データベースとWebサーバは、別々のjail環境下において動作させることにしています。
|
||||||||||||||||||
|
||||||||||||||||||
|
||||||||||||||||||
MySQL 4.1.16に更新
December 23rd, 2005databases/mysql41-{server,client}を4.1.15から4.1.16に更新。
バージョン間の変更点は、
参照。
公式サイトのTOPは、MySQL 5.0一色になってるな・・
databases/mysql*-clientのデフォルトのcharset
December 8th, 2005portsのMakefileを見ただけではわかりにくいけど、databases/mysql41-clientのデフォルトのcharsetもサーバ側と同じように、
- WITH_CHARSET=utf8
とすれば、ビルド時に反映される。
いつも、/usr/local/etc/pkgtools.confに、
MAKE_ARGS = {
'databases/mysql41-*' => [
'WITH_CHARSET=ujis',
'WITH_XCHARSET=all',
'WITH_COLLATION=ujis_japanese_ci',
],
}
などと記述していたけど、先日、datases/mysql41-serverの方だけWITH_CHARSET=utf8付きでビルドし、
% mysql mysql> status;
としたら、
Server characterset: utf8 Db characterset: utf8 Client characterset: ujis Conn. characterset: ujis
となっていた。
MySQL 4.1は、文字コードの変換には対応しているけど、念のため、
MAKE_ARGS = {
'databases/mysql41-*' => [
'WITH_CHARSET=utf8',
'WITH_XCHARSET=all',
'WITH_COLLATION=utf8_general_ci',
],
}
として、統一するように設定し、再ビルドしておいた。
日本語のロケールをja_JP.eucJPからja_JP.UTF-8に変更
December 4th, 2005FreeBSD 6.0にしてから気付いたのだが、Xの端末エミュレータで日本語文字を入力すると、表示が乱れる。BackSpaceで一文字取り消しても、全角文字の半分の位置にしか戻らず、文字は残ったままなのだが、削除されたような動作。どうも、挙動が変なので、使っていたKDE付属のkonsoleのせいかも知れないと思い、KTermやmltermなどにアプリケーションを変えてみても、症状は同じ。
もしや、ロケールのせいかもしれないと思い、駄目元で、ロケールを
setenv LANG ja_JP.eucJPsetenv LANG ja_JP.UTF-8
と変更して、Xを起動し直してみた。
今度はうまく行く模様。今までの鬱陶しさが嘘のように快適。UNIXでの日本語環境は、EUCと長らく思い込んでいたけど、時代はUTF-8か…。
ところが、今度は、ローカルのホームディレクトリにある日本語ファイル名のファイルやらディレクトリが読めない。以前、日本語ファイル名の文字コードを変換するため、Sambaを介して、Shift_JISからEUC-JPに変換した事があるけど、移動にかかる時間もあって、結構面倒だった。
何かうまい方法はないかと調べていたところ、
で紹介されていたconvmvというツールがあることを知った。
FreeBSDのportsにも、
の場所に用意されていたので、さっそく導入。
事前に、
% convmv -r -f euc-jp -t utf-8 ${HOME}
でどういう結果になるかチェックしてから、
% convmv -r -f euc-jp -t utf-8 ${HOME} --notest
で${HOME}以下にある日本語ファイル名のディレクトリやファイル群を一括して変換。
問題なく日本語のファイル名を見れるようになった。今後、UTF-8のロケールで使用してみることにする。
