このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

OSXServer10.4のMySql

発言者:まつもと
( Date Monday, May 02, 2005 12:23:40 )


いつもお世話になっております。OSX Server10.4が手元にきました。
XOOPSやりたくて設定しています。その設定の為にPHPMyAdminへアクセスすると
「phpMyAdmin 2.6.2 へようこそ
 #2002 - サーバーが反応しません。 
 (または、ローカルの MySQL サーバーのソケットは正確に設定されません)」となります。

/アプリケーション/サーバー/MYSQLマネージャにて
インストールとサービス開始は済ませています。

Server10.3の際は、この手順で、ほかには何もせずにアクセスできたのですが、
どこがおかしいのでしょう。
ちなみにターミナルにて「mysql」すると以下のようになります。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.10a

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

mysql> 

ご指導くださいませ。

かず さんからのコメント
( Thursday, May 05, 2005 16:10:58 )

まつもとさんへ
はじめまして、OSX ServerでWebサーバーを運用しているかずと申します。
私も10.3.9のアップグレードでサーバーが死んでしまい、早々に10.4Serverへ移行をいたしました。
その際にMySQLの設定でまつもとさんと同様の症状が発生し解決しましたので、
お役に立てればと思いレスさせていただきました。

私のケースでは MySQLのUNIX socketのパスが異ることから発生した問題で、
my.cnfにて「 /tmp/mysql.sock」へ記述したところ解決いたしました。

一度、rootでMySQLへ接続し、「/s」で
「UNIX socket:            /tmp/mysql.sock」
となっているか確認してみてはいかがでしょうか。

ふな さんからのコメント
( Tuesday, May 10, 2005 23:19:20 )

はじめまして。

まつもとさん同様のエラーが出て、phpMyAdminが利用できずに困っております。
UNIX socket: を調べてみたところ、「/var/mysql/mysql.sock」と出ました。

「 /tmp/mysql.sock」へ記述の変更方法が分からずに途方にくれております。

是非ご教授頂けたらと思います。

かず さんからのコメント
( Thursday, May 12, 2005 00:39:05 )

ふなさんへ
はじめまして、かずといいます。TigerServerの場合でご説明しますね。

MySQLの設定ファイルmy.cnfを作成するわけですが、テンプレートが「/usr/share/mysql」に
「my-small.cnf」「 my-medium.cnf」「my-large.cnf」の3種類がありますので、
(TigerServer標準のMySQL以外では「/usr/local/mysql/support-files」にあります)
運用の規模に合わせてどれかのファイルを選んでください。

その「.cnf」ファイルをテキストエディタなどで開き
[client]
#password  = your_password
port    = 3306
socket    = /var/mysql/mysql.sock ←この部分を
「socket    = /tmp/mysql.sock」に書き換えて上書き保存します。

書き換えた「.cnf」ファイルを「my.cnf」にリネーム(-mediumなどをトル)してから
「/etc/」に配置してMySQLを再起動すれば完了です。

再起動後、MySQLのステータスで確認してみてください。
「my.cnf」の作成時に文字コードの設定もしておくと便利ですよ。

お役に立てば幸いです。

ふな さんからのコメント
( Thursday, May 12, 2005 09:43:12 )

かずさん

ご丁寧なご説明ありがとうございます。
まだ作業をしておりませんが、とりあえずお礼ということで。


うまく行きましたらまた書き込みさせて頂きます。

ふな さんからのコメント
( Tuesday, May 17, 2005 12:54:17 )

こんにちわ。
先日はご丁寧なご説明を頂きましてありがとうございました。

早速やってみたのですが、うまくいきませんでしたので、再度ご指導いただけたらと思います。

まず、[client]
「socket    = /tmp/mysql.sock」の部分を書き換えたmy.cnfを作成して、「/etc/」に配置にしてみたところ、phpMyAdminは変わらずエラーが出てしまいました。
そこから[server]、[client]両方を「socket    = /tmp/mysql.sock」書き換えたところ、phpMyAdminで接続ができました。
その後Movable Typeの設置をしてDBに接しようとしたところ、MTからの接続の場合、エラーが発生してしまいました。

上記の場合はやはり[server]の部分まで書き換えてしまった為にエラーが発生してしまっているのでしょうか?

もし何かお気づきの点がございましたら、ご教授お願い致します。

Hickey さんからのコメント
( Tuesday, May 17, 2005 14:29:47 )

Appleが文書を公開されています。

→  Mac OS X Server 10.4: Issues connecting PHP to MySQL

ふな さんからのコメント
( Wednesday, May 18, 2005 23:50:20 )

Hickeyさん

ありがとうござました。
上記文書を参照しながら試行錯誤してなんとかMTの設定が出来ました。


かずさんも何度もありがとうございました。


また何かありましたらよろしくお願い致します。

kankichi さんからのコメント
( Monday, June 13, 2005 22:55:04 )

こんばんは。
私もMySQLへの接続ができない状況で四苦八苦しています。

http://docs.info.apple.com/article.html?artnum=301457
の文書も参考にしたのですが駄目でした。
ここの文書に書かれている内容は、具体的にはどう設定しろという事なのでしょうか?
ご教授頂ければ幸いです。

midore さんからのコメント
( Tuesday, June 14, 2005 02:00:33 )

初めまして、こんばんは。

>ここの文書に書かれている内容は、具体的にはどう設定しろという事なのでしょうか?

英語に堪能ではないしXserverにも詳しくないですが
On Mac OS X Server 10.4, においては
MySQL creates this socket file at /var/mysql/mysql.sock.
ソケットファイルは /var/mysql/mysql.sock.に作られるようですね。

#ちなみに通常のosx tigerにmysql ab が配布してるinstaller 付きのバイナリを利用した場合
#はソケットの場所はデフォルトで tmp/mysql.sock.です。

が、
php はデフォルトでmysql用ソケットファイルを /tmp/mysql.sock
から探そうとしますので接続できないよっという事態になる、そこで解決法としてどちらかの
設定ファイル(php.ini or my.cnf)を編集しなさいということで二通りのやり方が紹介されて
いて2番目のほうがセキュアだということが述べられてるようです。 

ただ気になる点として下記に2点あげます。

1、このマニュアルによると、最後に下記のように権限を変更しないさいとありますが、
mysql ab配布のosxインストーラによる場合はこれに加えてスティッキービットがたっています。

sudo chmod 775 /var/mysql

2、mysql4.1 にしたらphpに接続できなくなったいう問題の原因として
下記のページにあるようなmysqlの認証方法が下位バージョンと互換性がないことから
起因している場合もあるようです。下記には解決法も同時に公開されています。

皆様がどちらの問題をとりあげているのか?あるいは両方ともなのか?あるいはまた別の
原因からなのかわからないまま書き込んでしまいました。なにかの手がかりになればいい
のですが。。。

→  http://dev.mysql.com/doc/mysql/ja/old-client.html

kankichi さんからのコメント
( Wednesday, June 15, 2005 08:58:26 )

midoreさん こんにちは。
丁寧な回答ありがとうございます。

参考にして色々とやってみたのですが、以前解決には至りません。
ここで諦めるのも悔しいので、もう少し努力してみたいと思います。

まつもと さんからのコメント
( Wednesday, June 22, 2005 11:11:57 )

kankichiさん、こんにちは。
私もserver10.4にてXOOPSやるのにかなり苦労しました...(^^;。

>my.cnfにて「 /tmp/mysql.sock」へ記述したところ解決いたしました。
と
>Appleが文書を公開されています。
この通りの事をしてマシンを再起動するとすんなり動きました。

とも さんからのコメント
( Sunday, June 26, 2005 23:34:51 )

kankichiさん、こんにちわ。
まさしく今、苦労しているところです。
ググってるとここにたどり着きました。

どこにmysqld --old-passwordを記述すれば宜しいのでしょう?
mysqld --old-passwordをmysql.serverに記述したところ、PerlのDBDも/tmp/mysql.sockが見つからないという始末。
おとなしくMySQL4.1から4.0にダウングレードした方がいいのでしょうか。

とも さんからのコメント
( Monday, June 27, 2005 09:45:29 )

すみません、皆さん。
自分はOSX Tigerを使っていて、OSX Serverじゃないです。
別のスレ立てた方がよろしいでしょうか?

くま さんからのコメント
( Monday, June 27, 2005 18:24:09 )

ここが参考になるかと思います

→  ここ

とも さんからのコメント
( Tuesday, June 28, 2005 07:12:21 )

ありがとうございます、くまさん
mysqlのインストール自体は問題なさそうです。
mysqldの設定も正しく行えているようでした。
問題はPHP側でしょうか。
PHPを完全に削除したいなあ。。。。。
PHPをインストールしてもphpinfoの中をみるとどうやらデフォルトのままですし....おかしいなあ。

モジョ さんからのコメント
( Sunday, August 21, 2005 15:22:44 )

Mac OS X Server 10.4のMySQLは、10.3を経験していると、??という瞬間があるのでたいへんでした。
かくいう私も、PHPで接続できない->my.cnfの作成で解決でした。
ところが、それは10.3からのアップグレードを行ったマシンで、新規インストールして同じことをやろうとしたら、全然つながりません。
で、確認している途中で、MySQLアカウントのパスワードを4.1対応から旧バージョン互換に変更したら、スパッと接続できました。これからXOOPSも確認する予定ですが、そういうことだと思います。
mysqladmin -u ユーザ名 -p old-password パスワード
てな具合で、mysqladminコマンドで変更しました。
お役に立てれば....

takecat さんからのコメント
( Saturday, September 17, 2005 22:12:10 )

モジョさんのコメント
>mysqladmin -u ユーザ名 -p old-password パスワード

で数時間の格闘にピリオドが打てましたw
ありがとうございました。

あまり詳しく理解してなかったのですがmysqlasdminの場所も知らなかったのですがspotlightで
捜して、コマンドラインでいどうしたら、成功しました。

これって、最初からキレイにアップルが説明するべきなのでは?と思いましたが。