テクノロジーによる教育支援への挑戦

テクノロジーによる学びの支援へのチャレンジについて書いていきます

MAMP1.1.1がリリースされました

MAMP(Mac+Apache+MySQl+PHP) をMacOSX上に簡単にインストールする統合パッケージ)の新しいバージョンがリリースされました。新バージョンは多言語化されており、日本語インタフェースも利用できます。また、MySQLも4.1系列の最新版が採用されており、多言語環境を必要とするMoodleのようなアプリケーションの運用には適しています。MAMPGUIからも操作ができますし、コマンドラインからでも通常にインストールしたのと同様に操作が可能です。また、MAMPのルートディレクトリに各種起動/停止のスクリプトもあり、サーバ管理が不慣れな人も、コマンドラインからの方が楽でいいやという管理者さんにも便利にできています。

http://www.mamp.info

からディスクイメージをダウンロードします。

しかし、標準インストールではスタートページという管理画面に進むことができませんでした。下記のようなエラーが出ます。

Can't connect to MySQL Server

また、MAMPの画面からMySQLサーバを停止することもできません。

mysql -u root -p

などとしても

$ ./mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (38)

のように接続に失敗してしまいます。"ソケット情報を格納するファイルがない" とエラーメッセージが出るので、ソケットを格納するファイルをtouchコマンドにて作成しましたが、まだエラーが出る;-(

http://forum.mamboserver.com/showthread.php?t=65239

などでも困っている人がいて、調査をしたところ、"mysql"などのコマンドラインツールが使用しているMySQLのクライアントライブラリが想定しているMySQLのバージョンが4.0以前のものであるため、4.1以降のサーバに対してアクセスする際のパスワードのエンコーディングがあわないのだということがわかりました。

そこで、

/Applications/MAMP/bin/mysql4/share/mysql

以下で

cp my-mediaum.conf my.cnf

として設定ファイルのテンプレートをコピーし、

26 [mysqld]
27 old-passwords

のように "old-passwords"というオプションを追加してやります。そうするとMySQLサーバが古いクライアントライブラリからのアクセスを適切に処理できるようになります。

これで無事に

  • MySQLサーバの起動・停止ができる
  • MySQLクライアントからMySQサーバにアクセスできる
  • phpMyAdminが利用できる。日本語も利用可能。

となりました。

試しに誤ったパスワードで接続を試みると無事にパスワードが違うというエラーが出ます。

$ ./mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

ちゃんとしたパスワードを入れると(MAMPの出荷状態ではログイン名と同じ)

$ ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or ?g.
Your MySQL connection id is 10 to server version: 4.1.12

Type 'help;' or '?h' for help. Type '?c' to clear the buffer.

mysql>

と無事に接続できました。

以下は、phpMyAdminにアクセスしたところです。