[PHP-users 6749] Re: mysql_connectがうまくいかない

nakanecchi php-users@php.gr.jp
Mon, 8 Apr 2002 22:31:21 +0900


お世話になります。中根です。

(前略)
> とのことですが、信じられません。
> その前のメッセージ[6723]で
>
> > echo ("ok");
> >  $link = mysql_connect("localhost","nakane","secret");
> > echo ($link);
> > だけにして試してみましたがやっぱり同じです。
>
> と書かれていますが、これで$linkが表示されないということは、ロジック的
> には上のように書き換えても「Connection Error」の方が表示されるはずで
> す。
> なぜ、[6723]では$linkが表示されずに、[6727]では表示されたのでしょう。
> 上記の手順のほかに何かされたのではありませんか?
>

とのメールをいただきました。
悪気はなかったのですが、恐らくそのとおりです。すみません。
正直いって、 Connection result = Resource id #1が表示された
ときは書き換えによってうまくいったのだと納得して返信しました。
が、他の動かなかったphpプログラムまで動くようになっているこ
とに今朝気づき、動くようになった理由は他にあるのではないか
と思いました。

で、なぜそうなったのか、他に何かしなかったのか、を考えてみる
と思い当たるふしが2つあります。

1.Turbolinux6.5ServerではMySQLの初期設定をする必要がある
ターボリナクスのページに記載されているのですが
http://www.turbolinux.co.jp/knowledge/public/380.html
インストールのみではMySQLを使用できないとのことです。ただ
し、私の使用しているTurbolinux7Serverでもそうなのか、記述は
ありません。
そのときは他に方法もみあたらず、ここに記載されていることを
そのまま実行してみました。

2.socketのパスを訂正する
やはりターボリナックスのユーザーズフォーラムの記載です。
http://www.turbolinux.co.jp/dcforum/DCForumID11/2586.html
ここから
「./var/lib/mysql/mysql.sock へのシンボリックリンク
 を/tmp/mysql.sock にはる。」
というのを実行してみました。

思い当たるのは上記2点です。ですが、実行後Apacheと
MySQLサーバーを再起動させて、もう一回試みたのですが、
何も表示されませんでした。

その後
if(!$link){
echo 'Connection Error<br>';
echo mysql_error();
}else{
echo 'Connection result = ' . $link . '<br>';
}
を実行したらConnection result = Resource id #1
が表示されたので、てっきり書き換えによって成功したのだ
と、私が最初に書いていたプログラムには文法上のミスが
あったのだと思いました。

本当のところ、何で動くようになったのか確信をもてません。
ただ、他の動かなかったphpプログラムが、何もしないのに
いつのまにか動くようになった以上、上記2点が原因なのか
と推測します。とりとめのない話ですみませんが、今の私の
力量ではここまでが精一杯です。

> 後から似たような問題でメッセージを検索される方のためにも、質問をされた
> 方が、最終的にどうやって問題を解決したのかのサマリーを書いておいて頂く
> と、みんなが幸せになれると思います。

まったくそのとおりと思います。私のつたない話でどなたか
のお役に立てるのか大変不安ですが、少しでもお役に立
てれば幸いです。

訂正・改善点あればご指摘いただければと思います。
どうぞよろしくお願いします。