PHPでMySQLに接続しようとするとエラーが発生する

このQ&Aのポイント
  • MySQLに接続しようとする際に、PHPからエラーが発生します。パスワードは正しく入力していますが、なぜエラーが発生しているのでしょうか?解決方法を教えてください。
  • PHPからMySQLに接続する際にエラーが出ます。MySQLのパスワードは正しいのに、なぜエラーが発生するのか分かりません。どうすれば接続できるようになるでしょうか?
  • パスワードを正しく入力したにもかかわらず、PHPからMySQLへの接続時にエラーが発生します。原因と解決方法を教えてください。
回答を見る
  • ベストアンサー

phpからパスワードを入れ、MySQLに接続しようとするとエラーになります

PHP初心者。Mac OS X(10.4.11)を使っています。 「MySQL入門以前」という本で勉強を始めましたが、初歩的であろうところで前にすすめなくなってしまい、ここ数日苦しんでおります。 パスワードを設定し set password for root=password('xxxx'); mysql -u root -p 、パスワード入力で、MySQLモニタからデータベースの操作まではうまくいったのですが、phpからMySQLを操作する段になって mysql_connect('localhost', 'root', 'xxxx');とするとエラーになるのです。それも、本に出ている「パスワードをミスタイプすると図のようなエラー画面になります」のと同じように。パスワード入力は間違っていませんが、なぜなのでしょうか?どなたか助けて頂きたいのですが…。

  • PHP
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

当方はmacをあまり使わないので確固としたことはいえませんが、 >sudo mv ./Desktop/my.cnf /etc とやっても /etc に移動してくれなかったので、手動で /etc にコピーしてしまったのがいけなかったのでしょうか? これのせいでpermission errorになっているのではないかと思います。 こちらは参照されましたでしょうか。 http://www.hi-ho.ne.jp/tsumiki/book_sup2.html mysql.sockを消してmsyqldを再起動すると良いかもしれません。

deltan-go
質問者

お礼

ご回答ありがとうございます。お礼が遅くなってしまい失礼いたしました。 いただいたアドバイスを元に、いろいろ調べながら悪戦苦闘しております。 なんとなく近づいてきているような気もしますが、恥ずかしながらまだ解決していません。 ちょっと時間がかかりそうですが、あきらめずにがんばります。 またご報告したいと思います。

deltan-go
質問者

補足

お礼の補足です!出来ました! いろいろ試して出来なかった末、もう一度、MySQLをダウンロードして入れ直し、 アドバイス頂いた参照ページを見ながらやってみたら今度は出来ました。 /etc/my.cnfに [mysqld] socket=/var/lib/mysql/mysql.sock [client] socket=/tmp/mysql.sock を追加し、 phpファイルにも mysql_connect("localhost:/tmp/mysql.sock","mysql","passwd") と書いてやったらうまく動いてくれました! 実はこれが解決しない間、Mac OS X 10.3にもMySQLを入れてみたのですが、すんなり動いてくれて… Mac OS X 10.4だと上のように書き足してやらないとダメなのかもしれません。 時間があいてしまいましたが、おかげ様で解決できました。ありがとうございました。

その他の回答 (1)

  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

>それも、本に出ている「パスワードをミスタイプすると図のようなエラー画面になります」のと同じように。 具体的にどのようなエラーが出ているか提示していただければ回答しやすいかもしれません。 少しぐぐった限りでは http://www.r-styles.net/weblog/2007/10/macbookintel_mac_php_mysql_1.html こんなのが出ましたが。mysql.sockが正しい位置に存在し、phpが読み込める状態かどうか確認すると良いかもしれません。

deltan-go
質問者

補足

回答ありがとうございます。エラー表示は Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' A link to the server could not be established という具合です。ご指摘の mysql.sock について検索して調べていましたら、 /etc/my.cnfの[mysqld]→socket項目を編集する、というやり方があったので、 /etcの中の my.cnf を見てみたのですが [mysqld] default-character-set=sjis [mysql] default-character-set=sjis [mysqldump] default-character-set=sjis しかありません。もしかして、 my.cnf ファイルを本の通りに sudo mv ./Desktop/my.cnf /etc とやっても /etc に移動してくれなかったので、手動で /etc にコピーしてしまったのがいけなかったのでしょうか? 過去の記事で「Macでmy.cnfをコピー出来ない」というのがあって、回答にあった sudo mv ./Desktop/my.cnf ../../etc というのを試してみましたがうまくいきませんでした。

関連するQ&A

  • PHPからMySQLに接続できません。

    PHP初心者でWindows XPを使っています。 「実戦マスター PHP+MySQL」という本で勉強しているのですがどうしてもわからないところがあるので教えてください。 MySQLモニタからデータベースの操作まではうまくいったのですが、phpからMySQLを操作する段になってmysql_connect('localhost', 'root', 'xxxx');とするとエラーになるのです。エラー画面は Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\test\test7-1-1.php on line 6 です。何故こんなエラーが出るかわかりません…。どなたか助けて頂けませんでしょうか。

  • PHP4からMySQLに接続できません。

    質問です。 PHPから、MySQLを操作したいのですが、 mysql_connect("localhost","user","pass") ですと、 Client does not support authentication protocol requested by server; consider upgrading MySQL client in~ というエラーが、 mysql_connect("localhost","root","") ですと、 Access denied for user 'root'@'localhost' (using password: NO) in~ というエラーがでて、 接続できません。 PHP4.3.10,MySQL4.1を使っており、単独では動作してい ます。 何か分かる人、お願いします。

    • ベストアンサー
    • PHP
  • PHPからのmysql_connect();がエラーで接続できません。

    QbickUと申します。よろしくお願いします。 環境は、 WinNT / Apache1.3.29 / PHP4.3.6 / MySQL 3.23.49 です。 症状としては、phpで次のように記述し実行すると //サーバー名--localhost ユーザー名--root パスワード--123456 $dbHandle = mysql_connect("localhost","root","123456"); if ($dbHandle == False) { print ("can not connect db\n"); exit; } else { print ("OK\n"); exit; } -- 次のようなエラーが返ります。 Warning: mysql_connect(): Access denied for user: 'SYSTEM@localhost' (Using password: NO) in c:\html\mytest1.php on line 4 can not connect db -- 補足事項なのですが ・MySQL権限の初期設定済みです。 ・コマンドプロンプトからは接続、テーブル操作ができます。(ルート権限 user:root pw:123456、また他の一般権限ユーザーにおいても) ・phpinfo();の結果において、MySQLの表示が確認できます。 ・mysqld-nt.exeはひとつしか起動していません。 'SYSTEM@localhost',password: NOとなっているため、ユーザーID、パスワードとも渡っていないような気がします。 同じようなスレッドを見つけたのですが、いずれもそこで解決に至っておらず、往生しています。 アドバイスをいただけたらうれしいです。よろしくお願いします。

  • PHPでMYSQLに接続できません

    PHP(4.3.11)でMYSQL(5.0.81)に接続しようとすると接続できず、 Client does not support authentication protocol requested by server; consider upgrading MySQL client というエラーになります。 PHP文はこのように記述しています。 <?php $con = mysql_connect("localhost","root","password"); if (!$con) { print(mysql_error()); exit('データベースに接続できませんでした。'); } ?> my.cnf に old_passwords=1 を記述し、mysqlを再起動したのですが同じエラーでした。 他に設定しなければならない事があるのでしょうか?

  • PHPでのMySQL接続エラーについて

    PHPを使用してMySQLサーバに接続しようと思うのですが、どうしても "Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\Server\Apache2.2\htdocs\htdocs\connect.php on line 2" と表示されて接続できません。いろいろ試してみたので、情報を列挙いたします。 動作環境 OS:WindowsXP Pro Apache2.2.8 PHP5.2.6 MySQL5.0 1.コマンドプロンプトからはMySQLに正常に入ることが可能です。 2.上記のエラーが出るPHPプログラムは以下の通りです。 "<?php %conn = mysql_connect("localhost", "root", "password"); ?> 3.phpMyAdminを使って接続しようとしても以下のエラーが出ます。 #2003 - サーバが応答しません" 4.セキュリティソフトを終了させて接続しても同様の症状でした。 5.phpinfo()関数は正常に動作し、mysqlやmysqliの情報も表示されます。 以上の内容ですが、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • PHP+ApacheでMySQLに接続できない。プロンプトからは可能

    以下のようなコードでmysqltest.phpというファイルを作成しました。 これを php -f mysqltest.php とやると成功します。 しかし、ブラウザでhttp://パス/mysqltext.phpとやると失敗します。 双方がどう違うのか教えていただけないでしょうか。 以下コードです。 ----------------------- <html> <body> <?php $hostname = "localhost:/var/lib/mysql/mysql.sock"; $name = "root"; $password = "pass"; printf( "hostname:%s<br>\n" , $hostname ); printf( "username:%s<br>\n" , $name ); printf( "password:%s<br>\n" , $password ); mysql_connect($hostname, $name, $password ) or die('cannot connect to database'); ?> </body> </html> ---------------------------------- 単に「ホスト:ポート」「ユーザネーム」「パスワード」を指定してconnectしているだけです。 コマンドラインから実行すると成功します ---------------------- <html> <body> hostname:localhost:/var/lib/mysql/mysql.sock<br> username:root<br> password:komaba<br> </body> </html> ---------------------------- ブラウザで実行すると失敗します。 ----------------------------- hostname:localhost:/var/lib/mysql/mysql.sock username:root password:pass cannot connect to database -----------------------------

  • mysqlにうまく接続できません

    PHP、Mysql初心者です。 何かWEBページの作品を作ろうと、データベースを使ってます。 ごくごく定番のPHPからデータベースの内容を書き出すことをしているのですが、 Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\renshu\ken.php on line 10 というエラーコードが出ました。私のテキストエディタでの9~11行目はこちらです。ちなみにApache2とMysql5です。 <?php mysql_connect('localhost','root','パスワード'); mysql_select_db('データベース名'); 参考書通りにやっていまして、タイプミスはないはずなんですが…。ホスト名やユーザ名もあっているはずです。 どなたか教えてください。よろしくお願いいたします。

  • PHPでMySQLに接続失敗

    Apache_2.0.55 php-5.1.2-win32 mysql-5.0.21-win32 windows XP HOME Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\sample\smp01.php on line 9 とエラーがでました。 以下の設定しているのですが、このようなエラーがでました PHPとApacheのテストは成功しています mysqlコマンドラインツールの起動・操作もできました mysqlのパスワードは設定はしていません PHPのスクリプトは実行できるのですが PHPとMySQLの接続がうまくいきません 色々と、調べているのですが原因がわかりません 初心者です、どうぞ宜しくお願いします 1 <?php 2 3 $DBSERVER = "localhost"; //MySQLサーバー名 4 $DBUSER = "root"; //ログインユーザー名 5 $DBPASSWORD = ""; //パスワード 6 $DBNAME = "sampledb"; //データベース名 7  8 //MySQLに接続します 9 $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); libmysql.dllをC:\WINDOWS\system32にコピー PHP.iniファイルでextension=php_mysql.dllをコメントから復帰 Apacheを再起動

    • ベストアンサー
    • MySQL
  • 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からMySQLに接続について

    phpからMySQLに接続について 自宅サーバーにMySQLをインストールしたのですが、 phpからMySQLに接続がうまくできず、困っています。 [test.php] <?php mysqli_connect("localhost","root","qwertyui") or die("Error MySQL First Test"); echo "Success MySQL First Test"; ?> [エラーログ] PHP Fatal error: Call to undefined function: mysqli_connect() in ~~~test.php on line 2 コマンドラインでは正常に動作しているのでインストールは問題ないと思います。 PHPの設定だと思うのですが、考えられる原因を教えていただければ幸いです。 環境 VineLinux 4.2 PHP 4.4.8 MySQL 5.0.27 よろしくお願いします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう