MySQLアップデート

user-pic
0

EclipseのDBプラグインを作成しているときに気づいたのだが、MySQLでトランザクション管理ができない。

少し調べたところ、原因は、MySQL 3.23は、デフォルトで、トランザクション管理ができないということだった。
ちなみに、create文を発行して、デフォルトで作成されるテーブルは、MyISAMという種類になる。
また、トランザクション管理が可能なテーブルは、InnoDBとなる。

MyISAMとなっているテーブルをInnoDBに変更するには以下のSQLを発行するのみで可能である。

alter table "テーブル名" type=InnoDB;

トランザクション管理を行うためには、./configure --with-innodbを行ってから、コンパイルインストールを行わなければならないらしいので、、DBの実験を行うために、MySQLのバージョンアップを行うことにした。srpmからリビルドを試みたが、ライブラリの依存問題か足りないのかで、途中で止まってしまった。

そこで、情報収集めのためMySQLの本家サイトをみていたところ、PPCのバイナリが標準で配布していた。バイナリがあるのであれば、メジャーバージョン自体の乗り換えてしまいこととし、トランザクション管理を行うには、MAXバイナリが必要なので、
mysql-max-4.1.5-gamma-unknown-linux-powerpc.tar.gz
をダウンロードし、インストールした。

試しに、旧バージョンのMySQLのデータディレクトリをさした状態で、新バージョンのMySQLを起動したところ普通にデータベースにアクセスできた。どうやら互換性があるらしい。

しかし、mysqlコマンドからアクセスしようとすると、普通にインストールしたところ、sockファイルが見つからないと怒られた。

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
これは、Vineのバイナリでデフォルト指定されている場所に、sockファイルがないからということらしい。 sockファイルは、Unixで通信するために必要な設定が書かれたファイル?らしい。

解決方法は、起動時にsockファイルの作成場所を指定するため、/etc/my.cnfファイルを作成し、[mysqld]カテゴリに以下のように定義した。

[mysqld]
socket=/var/lib/mysql/mysql.sock

一応、DBが使えるとしても気持ちが悪いので、DB自体を再構築した。
まず旧バージョンのMySQLを起動し、DBのダンプ。

mysqldump "データベース名" > "ダンプファイル名"

新バージョンMySQLに切り替えてから、ダンプファイルを使用してデータベース再構築。

mysql -u "ユーザ名" -p "データベース名" < "ダンプファイル名"

正常に再構築ができたように見えたのだが、MySQL上で運用している本Blogだと正常で、作成中のEclipseプラグインからだと日本語コードが文字化けしてしまった。

またまた、原因を調査したところ、MySQL4系だと、設定ファイルから指定なしに作成されたテーブルの標準文字コードなどを設定できるらしい。

現状の設定の確認方法は、mysqlコマンドでMySQLにログインし、以下のコマンドを実行する。

mysql> show variables like 'character\_set\_%';

表示される設定を変更することで、クライアント側から接続したときに文字化けを解消できるらしい。

MovableTypeの文字コードは、UTF-8。
EclipseもUTF-8なので、MySQLのデフォルトの文字コードをすべて、UTF-8とする。
設定方法は、/etc/my.cnfの[mysqld]カテゴリに以下のように指定する。

[mysqld]
default-character-set=utf8

これで、MovableTypeと作成中のEclipseプラグインからも文字化けがおこらずに、文字列が取得可能となった。
また、正常にトランザクション処理もできたので、これで、Eclipseプラグイン開発のテストに使用できることとなった。

トラックバック(0)

トラックバックURL: http://dia-sea.dyndns.org/mt/mt-tb.cgi/62

コメントする

このブログ記事について

このページは、dia-seaが2004年9月23日 17:52に書いたブログ記事です。

ひとつ前のブログ記事は「Eclipseプラグイン開発」です。

次のブログ記事は「Eclipseプラグイン開発メモ(MySQL JDBCドライバの接続文字列)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。