MySQL+PHP 接続エラーについて

このQ&Aのポイント
  • MAMPを使用していると、MySQLとPHPの接続エラーが発生しました。
  • エラーメッセージによると、ローカルのMySQLサーバーへの接続に失敗しています。
  • 試した解決法や設定もうまくいかず、他に原因があるのか悩んでいます。
回答を見る
  • ベストアンサー

MySQL+PHP 接続エラーについて

はじめて質問させて頂きます。 MySQL、PHPともに初心者です。 MAMPを使用しています。 ローカルではほぼ問題無く動作していたphpファイルをウェブ上にアップロードしたところ、以下のようなエラーが出てしまいました。 Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in~ ネットやこちらの過去ログで調べたところMAMP使用下ではよくあるエラーらしく解決法も載っていたのですが、どれを試してもなぜかエラーが消えてくれません。 ソケットもMySQLサーバー側とクライアント側で同じもの(/Applications/MAMP/tmp/mysql/mysql.sock)を参照していると思うのですが・・・ php.iniの中でも、 mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock と指定されてあります。 何か他に原因があるのでしょうか。 ド素人のため質問がすでにおかしいかもしれませんが、お知恵をお貸しください。 よろしくお願い致します。

  • MySQL
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • zionic
  • ベストアンサー率39% (31/79)
回答No.1

1番可能性があるものとしては、MySQLサーバーが起動していない。 2番目としてはWebサーバーのmysql.sockへのパスが間違っている。 この情報だと、これくらいしか浮かばないです。 すでにご覧になっているかもしれませんが、参考URLを載せときました。

参考URL:
http://www.hi-ho.ne.jp/tsumiki/book_sup2.html
nmuraxxxxx
質問者

お礼

解決しました。ありがとうございました。

nmuraxxxxx
質問者

補足

ご回答ありがとうございます。 >MySQLサーバーが起動していない。 MAMPでは緑色のボタンが点いていて起動しているようなのですが、それとこれとは違うのでしょうか? >Webサーバーのmysql.sockへのパスが間違っている。 これはどのように調べれば良いのでしょうか・・・ 参考URLのサイトは目を通したのですが、あまりにも知識がなさすぎてよくわからない、というのが正直な話です。お恥ずかしい。 MAMPのスタートページには、ソケットを /Applications/MAMP/tmp/mysql/mysql.sock で設定するように書いてあるので、これに統一すれば良いのですよね? 質問ばかりで申し訳ありません。

関連するQ&A

  • ソケットエラーについて(PHP+MYSQL)

    過去ログもたくさんでていたのですが、解決しないので質問します。 PHPとMYSQLを連動させて使用したいのですが、わからないなりにサーバーの設定しています。 Fedora Core3 PHP Version : 4.3.11 Apache Version : 2.0.53 MYSQL 5.0.24a で設定しています。 PHP単体では動いています。 MYSQLもターミナル上では動いています。 PHPからの動かすと DB Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) と出たので、 mysqldをもう一度起動してみたり php.iniを /tmp/mysql.sock に変更してApacheを再起動したり my.cnfも同じ値にしているのですが (mysql.socは/tmp/にある) エラーが DB Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) に切り替わっただけでした。 mysqldが動いていないのかなーとも思うんですが どこから手をつけていいのかわからなくなっています。 ひとつ気になるのが、PHPのテストファイルで取得したinfoの MYSQLの 項目で MYSQL_SOCKET /var/lib/mysql/mysql.sock と出ていました。 これって関係あるんでしょうか。 別の設定があるのでしょうか・・・ それともやっぱりmysqldをあたってみたらいいのか。 みなさんのご意見をお聞かせいただければ幸いです。 あと参考になるような本があれば教えてください。 よろしくお願いします。

  • 【至急】MySQLのエラーを解消したいのですが?

    データを間違って消してしまい、サーバーにデータを バックアップ復活したのですが、以下の様なエラーが生じており、 困っております。 MySQLのエラーを解消したいのですが?、知識がなく、どうすればいいのでしょうか? ・1)Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL Server Host '0net' (1) in /ファイルパス/ファイル.php on line 7 ・2)Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /ファイルパス/ファイル.php on line 8 ・3)Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /ファイルパス/ファイル.php on line 8 ・4)Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /ファイルパス/index.php on line 5 ・5) Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /ファイルパス/index.php on line 5 ・6) Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /アフィルパス/index.php on line 6 ・7) Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /ファイルパス/index.php on line 6

  • PHPのMySQL接続について

    Mysqlの超初心者なので質問に不備などがございましたらすみません。 次のサイト(http://blog.nextbird.com/?p=23)に掲載している通りに会員システム構築を行っております。 レンタルサーバー(Cside:mySQl使用可能)のphpmyadminでデータベースを作成しました。データベースサーバー名やパスワードなどもiniファイルに記入して接続用のファイルでincludeしています。 すべてアップロードし、試しに自分でフォーム(名前やEmailアドレスなど)に記入したところ、『Can't connect to local MySQL server through socket '/tmp/mysql.sock' 』というエラーが出ます。 『local MySQL server』ということはローカルのMysqlに関係しているようなのですが、レンタルサーバーですべてを行っているのにローカルでMySQLをインストールして設定することなどが必要なのでしょうか?Csideのphpmyadminで『phpMyAdmin 2.6.4-pl3 へようこそ』の下に 『MySQL 4.0.24 は localhost 上 *******@localhost として実行しています。』と書いてあるのも気になります。 php自体は経験有りなのですが、MySQLの接続で困っている状況です。とにかく、、『Can't connect to local MySQL server through socket '/tmp/mysql.sock' 』だけは回避したいのですが、どなたかわかりやすくお教えして頂けませんでしょうか? 分かりづらい質問で誠に申し訳ございません。

  • MySQLとの間でのソケットエラー

    あまりプログラミングを知らないので言葉がおかしいところあったらすみません。 とあるレンタルサーバーを借りてphpのプログラム(WordPress)を動かしています。 WordPressはME 2.2.3、phpは4.4.2、別のサーバーで動いているMySQLは4.0.26です(WWWサーバー、MySQLサーバーは専用ではなく共有)。 ここ数日なのですが、ブログの更新時やコメント投稿時に以下のエラーが出るようになりました(但し記事やコメント自体は投稿できています)。 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) on line: 294 ネットで検索したところ、phpとMySQLをつなぐソケットというものの位置がおかしくなっていることが一因のようです。 phpinfo()で返ってくる値は"MYSQL_SOCKET /tmp/mysql.sock"となっており、 一方phpMyAdminでログインしてMySQLを確認したところ"socket /home/mysql/mysql.sock /home/mysql/mysql.sock"となっています。 このズレがエラーを引き起こしているのではないかと思うのですが、あいにくユーザーにはこれらを変える権限はないようです(php.iniを設定することは不可能)。 私がWordPressをインストールしなおして設定をいじれば対応できるようですが、その前にこうしたズレはよくあることなのか、それともレンタルサーバー側に問い合わせるべきなのか疑問に思ったので質問しました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLが起動できない

    Can't connect to local MySQL server through socket '/tmp/mysql.sock'ていうエラーメッセージ が出てしまいます。解決方法を教えてください

    • ベストアンサー
    • MySQL
  • MySQLをPHPで使おうとして

    FedoraCore(192.168.0.101)に /var/www/html/index.php: <?php $link=mysql_connect("localhost","root","12") or die("Could not connect"); print"Connected successfully"; mysql_close($link); ?> を入れて他のPC(192.168.0.100)からこれを呼びましたが Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /var/www/html/index.php on line 2 Could not connect となり接続できません /var/lib/mysql/はありmysql.sockがありません どうしたらいいのでしょうか?

    • ベストアンサー
    • MySQL
  • phpからmysqlへ接続できなくて困っております

    phpからmysqlへ接続したいのですが、データベースへ接続できません。 まず、使用環境は以下の通りです。 ------------------------------ OS:RedHatLinuxES4 MYSQL:mysql-4.1.7-4.RHEL4.1 PHP:php-4.3.9-3.1 MysqlとPHPはRedHatサイトのパッケージを使用してrpmでインストール しております。 MySQLのデータディレクトリをデフォルトの/var/lib/mysqlから /home/mysqlへ変更してます。 それに伴い、/etc/my.cnfのソケットとデータディレクトリの箇所 を変更しております。 <デフォルト設定> socket=/var/lib/mysql/mysql.sock datadir = /var/lib/mysql <変更後> socket=/home/mysql/mysql.sock datadir = /home/mysql ------------------------------ 色々調べていて原因は分かりました。 mysqlで指定しているソケットの場所と、PHPで指定している ソケットの場所が違うため、接続できないようです。 phpinfoにて情報を取得したところ、mysqlの箇所でソケットを指定 がデフォルト値の/var/lib/mysql/mysql.sockとなっておりました。 そこで、php.iniファイルのMYSQLの箇所を以下のように修正しました。 <デフォルト設定> mysql.default_socket = <変更後> mysql.default_socket = /home/mysql/mysql.sock 上記変更後、apacheを再起動し、再度phpinfoにて情報を取得した ところ、以下のようになりました。 MySQL Support項目、 MYSQL_SOCKET → /var/lib/mysql/mysql.sock #変更されず、反映されていないように見受けられるます Directive項目、 mysql.default_socket → /home/mysql/mysql.sock #php.ini修正前は確か、no valueであったと思います。 #従いまして、php.iniの内容が反映されている? --- その後、mysqlへ接続する、mysql_connect関数を利用して 接続テストを行った結果、エラーとなり接続できませんでした。 <エラーメッセージ> 接続できませんでした: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) --- おそらく、上記のphpinfo情報取得した時の、MYSQL_SOCKETが反映 されていないからだと思っておりますが、php.iniファイルの mysql.default_socketを修正すれば反映されると思ったにも関わらず 反映されないので、次にどこを修正すれば良いのか分かりません。 ご教授頂けませんでしょうか。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPからMySQLに接続することができません。

    PHPからMySQLに接続することができません。 解決方法をご存じの方は教えていただけないでしょうか。 PHPから、mysql_connect を行った際、以下のエラーが発生してしまいます。 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) 環境 OS:CentOS 5.3 DB:Mysql 5.0.67(ソースからインストール) Web:Apache PHPのソースの一部を以下に記します。   $db_host = 'localhost';//DB_NAME;   $db_user = 'user';//DB_USER;   $db_pass = 'pass';//DB_PASS;   $db = mysql_connect($db_host,$db_user,$db_pass); 以下の方法も試したのですが、エラーメッセージは変わりませんでした。   $mysql_connect("localhost:/tmp/mysql.sock","mysql","passwd") 端末のコマンドからMySQLへの接続は成功します。 ホスト名、ユーザー名、パスワードも上記と同一のものです。   $ /usr/local/mysql/bin/mysql -h localhost -u user -p   Enter password:pass 以上です。宜しくお願いします。

    • 締切済み
    • PHP
  • よくわかるPHPの教科書で勉強中なのですが…

    188ページのPHPとDBで本格的なwebシステムを作るというところを勉強しているのですが、PHPをMySQLに接続したいのですがサーバーにアップするとWarning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/sites/heteml/users…/・/・/・/…/web/index.php on line 2 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) と出てきます。どのようにしたらアップできるのでしょうか? 使用しているサーバーはhetemlで動作環境はXAMPPです。localhostでは動きます。 どなたか詳しいかたご教授お願いいたします。宜しくお願い致します!

    • ベストアンサー
    • MySQL
  • レンタルサーバでPHP(pico)からMySQLに接続したい

    初めて質問させていただきます。 phpもmySQLも初心者なのでもしおかしいところや足りないところがありましたらご指摘ください。 レンタルサーバ(お名前.com)にて、xoops cubeをインストール。 picoモジュールを追加。 phpmyadminモジュールを追加し、自前テーブルを作成。 picoのコンテンツ編集により、phpプログラムを記述し、自前テーブルに接続。 やっている内容は、 リストボックスで選択された単語からDBを検索するフォームをPOSTで送信 次ページにて一覧を表示する です。 自分記述したphpプログラムでDBConnectしています。 問題箇所は、 検索結果は表示され、想定した通りのhtmlが表示されるのですが、ページの一番下に以下のコメントが表示されてしまいます。 Warning [PHP]: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in file xoops_trust_path/modules/pico/main/index.php line 83 Warning [PHP]: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in file xoops_trust_path/modules/pico/main/index.php line 83 色々調べてみたところ、socketの相違だと思い、以下を調べました。 phpinfo()にて表示されたsocketは「/tmp/mysql.sock」 phpmyadminから見た変数socketは「/tmp/mysql.sock」 上記のように、相違はない模様。 DBの内容も取って来れてるので問題はないのですが、画面に常にエラー表示がされてしまうのはとても気になります。 原因に思い当たるふしがあればご教授願えませんでしょうか。 ちなみにレンタルサーバなのでphp.iniは変更出来ません。

    • 締切済み
    • PHP