さくらのレンタルサーバーで簡単な会員登録プログラムを作っています。
index.php → check.php → thanks.php ・・・のような感じです。
ルートディレクトリには/dbconnect.phpを作成してあります。
「登録する」ボタンをクリックするとデータベースへ接続し、入力したデータを登録できるはずなんですが、
以下のようなメッセージが出力されます。
「Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)」
少し検索したところ、
MySQLサーバーで使うソケットをクライアントに合わせるのがいいらしんですけど、
さくらのレンタルサーバーでMySQLの設定を行う/etc/my.cnfが見当たりません。
アドバイスいただけないでしょうか?
以下が制作中のサイトです。
http://yuuri.sakura.ne.jp/join/index.php
さくらはコントロールパネルにあるphpMyAdminで操作します。
http://support.sakura.ad.jp/manual/rs/web/db.html
phpMyAdminすらも正常に動かないとなれば、
ソケット関連を疑っても良いですが、
その場合はサポートにメールして対応してもらうことになると思います。
ここから本題に移りますが、
リンク先では、いきなりメアドや画像の登録を求められ、
dbconnect.php の中身は見れませんでした。
従って、実際にどのようなプログラムを組んでいるかはわかりませんが、
勝手な想像では、事前の文法チェックすらも行わずにアップロードしたものを、
サーバー上でいきなりテストして、頻繁にエラーで止まっているものと推測します。
こちらの推測が正しければ、エラーによる途中停止を繰り返すことによって、
データベースと接続したままになっているソケットが多数存在し、
それらが時間切れで開放されるまで接続できない状況が発生することも、
想像に難くありません。(こちょこちょやってると繋がることもあるということ)
引き続き想像で話をしますが、
最近は、WindowsやMacでも簡単にWeb+DB+phpサーバを構築できるようになってますので、
自分のためにも、他人のためにも、ローカルでのテストをしっかり行うようにしましょう。
自前で構築する楽な方法としては、
xamppというソフトで全てを一括インストールする方法があります。
http://www.apachefriends.org/jp/xampp-windows.html
ローカルで十分にテストしたものをアップロードしてもダメということであれば、
サーバーのトラブルか混雑が考えられますので、さくらのサポートに報告して、
サーバーを変えてもらえないか相談してみてください。
ざっくりとですが、現状では以上です。
余談になりますが、
コードの相談は自分のサイトを明かさないほうが良かったのです。
URLが判らなければコードを見せても攻撃対象になる心配はほぼ無いので・・・
「Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)」
のメッセージが消えました。
mysql_connect('localhost', 'root', '') or die(mysql_error());
のlocalhostは変えないとダメですね、'wwwxx.sakura.ne.jp'(xxは数字)とかユーザー名もrootでいいのかとかです
mysqlXX.db.sakura.ne.jp
データベース名はさくらのユーザー名
データベースユーザーもさくらのユーザー名
それとパスワードを設定してますね
その値で接続に行ってるようです
mysql_connect(ホスト名,ユーザー名,パスワード)
って感じです