2009年7月4日土曜日

MacBookにPostgreSQLを入れるつもりがMySQLを入れる

MacBookにTomcatとEclipseが入れば、次は当然DBMSを取りあえず入れたくなるのが人情というもの。

はっきり言って、自宅用のノートにDBを作って使い道なんかまったく思いつかないが、それを言ったらTomcatだってそうだし。
とりあえず、Macにそういうのを入れる、ということ自体が俺の中では斬新で愉快なのでやってみる。


PostgreSQLダウンロードページ
http://www.postgresql.jp/PostgreSQL/8_3/8_3_5

ソース版を選択。Mac用とは書いてないがWindows用インストーラを持って来てもしょうもないので。

オンラインマニュアルから、簡易版インストールマニュアル。
http://www.postgresql.jp/document/pg835doc/html/install-short.html

本当に簡易版だ…

で、ともかくやってみたら、

configure: error: no acceptable C compiler found in $PATH

だとよ。

Cコンパイラがない、ということだろうが、これを入れるにはMacPortsというのを使うと入れられるらしい。

で、それを使おうと思ったが、
$which port
とやったら入ってないらしい。

なので今度は、PostgreSQLを入れるためのCコンパイラを入れるためのMacPortsのインストールを試みる。

すると、そのためにまずXcode Toolsを入れろと。なんのこっちゃ。

http://developer.apple.com/jp/technology/tools.html
よくわからんが、
Xcode for Mac-only Development
でいいだろうと、ダウンロードしようとすると…
ログインを求められる。
とりあえず、iTunesとかで使ってるAppeIDを入れたら、さらに英語で住所登録を要求される。

適当に入力し、ダウンロードページに到着。
ダウンロード開始したが…

なかなか落ちてこないな…って998MBもあるのかよ!?

…イラネ。


やってられんよ。そこまでしてPostgreSQLを使わねばならない動機は俺にはない。


そこで、オープンのRDBMSでPostgreSQLと並び立つ両雄、MySQL
http://dev.mysql.com/downloads/
こっちに移動。

MySQL Community Server
をダウンロード。

Mac OS X (package format)
http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg

おお、あるある。

Mac OS X 10.5 (x86)をチョイス。

なんかまた英語フォームでいろいろ聞かれるが、適当に気前よく答えて、ダウンロード。60MBくらい。

ダウンロードしたものをダブルクリックしてマウントしたら、pkgファイルが2個出現。
たぶん1個が本体でもう1個が管理ツールだろうなあ、と、とりあえず両方入れる。

起動は…わかんねえ。つうかどこにインストールされた?


仕方ないのでいやいやドキュメントを見ることに。
http://dev.mysql.com/doc/refman/4.1/ja/post-installation.html


/usr/local/mysql発見。起動を試みる。

$./scripts/mysql_install_db

[ERROR] Aborting

軽く失敗。
$sudo su -
$cd /usr/local/mysql
$./scripts/mysql_install_db

OK、OKと2回くらい見えたのでおkの模様。

mysql/binに移動して、
./mysqladmin version
./mysqlshow

とかやるとそれらしい回答もある。

わかったから俺はさっさとDBを作りたいのだが。

http://dev.mysql.com/doc/refman/4.1/ja/mac-os-x-installation.html

rootのパスワードがどうとか、aliasがどうとか、まあ後でいいや。

で、
$/usr/local/mysql/bin/mysql
がクライアントだということはわかったので、

チュートリアル
http://dev.mysql.com/doc/refman/4.1/ja/tutorial.html

に従い、
mysqlにて、

> grant all on test_jhon_01.* to 'jhon01'@'localhost';

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'test_jhon_01'
だってよ。

> create database test_jhon_01;

こっちが先なんじゃね?と思ってそうしたら、DBは出来たがユーザは依然できず、結局、

mysqlを終了し、改めて

$ mysql -u root
で入ったら出来た。さっきは-uは付けてなかったが、あれは何者として接続してた?…匿名か。

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| test_nkd_01 |
+--------------------+
4 rows in set (0.00 sec)

出きったぽい。

http://dev.mysql.com/downloads/connector/j/5.1.html
Connector/J 5.1なるものをダウンロードして、Tomcatのlibに置き、EclipseのDatabase Developmentパースペクティブにて、テーブル生成のテストまで完了。

ふう。


と思ったら、日本語が一切使えない。

http://wota.jp/ac/?date=20061011
が、ここに解決策を発見。

要は、MySQLは、アンチマルチバイト圏で開発されたアプリケーションにありがちな、世の中にはユニコードという立派な国際派文字セットがあるにも関わらずとりあえず文字っつったらアルファベット(Latin1,iso-8859-1)でいいだろという、気の利かないデフォルト設定になっているので、これを/etc/my.cnfなる設定ファイルを書き換えればよい、ということだった。

つったら/etc/my.cnfなんてねえよ。なんだよ。と思いきや。
http://kinoushi.blogspot.com/2008/05/mysql5-mycnf.html

Macは何かとアレだよね。いくらUnixになったとかiPod売れたとか言っても、依然、マイノリティ的苦労とは縁が切れない。

つまり、
/usr/local/mysql/support-files/my-xxx.cnfの適当なの(俺はsmallにした)を/etc/my.cnfにコピーし、
[mysqld]の直後に
default-character-set=utf8
skip-character-set-client-handshake

と書いて、

# ./mysqladmin -u root shutdown
# ./mysqld_safe &

で、前に作ったDBは相変わらず化けてるけど、
# ./mysql

mysql> crete datebase test_jhon_02;

で、こっちにつなぎ直したら化けなくなったよ。

ところで、02を作るにあたりgrantとかしてないけど実は関係ないのか?


それは、まあ今度気が向いたら確認しよう。いまのところ、俺はDBが使いたいだけであってDB管理者になりたいわけじゃないから。

0 件のコメント:

コメントを投稿