こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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');とするとエラーになるのです。それも、本に出ている「パスワードをミスタイプすると図のようなエラー画面になります」のと同じように。パスワード入力は間違っていませんが、なぜなのでしょうか?どなたか助けて頂きたいのですが…。

投稿日時 - 2008-02-18 01:53:46

QNo.3786080

すぐに回答ほしいです

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

当方はmacをあまり使わないので確固としたことはいえませんが、
>sudo mv ./Desktop/my.cnf /etc とやっても /etc に移動してくれなかったので、手動で /etc にコピーしてしまったのがいけなかったのでしょうか?
これのせいでpermission errorになっているのではないかと思います。

こちらは参照されましたでしょうか。
http://www.hi-ho.ne.jp/tsumiki/book_sup2.html
mysql.sockを消してmsyqldを再起動すると良いかもしれません。

投稿日時 - 2008-02-20 11:57:58

補足

お礼の補足です!出来ました!
いろいろ試して出来なかった末、もう一度、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だと上のように書き足してやらないとダメなのかもしれません。
時間があいてしまいましたが、おかげ様で解決できました。ありがとうございました。

投稿日時 - 2008-02-28 17:41:13

お礼

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

投稿日時 - 2008-02-23 03:21:08

ANo.2

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

wp_

>それも、本に出ている「パスワードをミスタイプすると図のようなエラー画面になります」のと同じように。
具体的にどのようなエラーが出ているか提示していただければ回答しやすいかもしれません。

少しぐぐった限りでは
http://www.r-styles.net/weblog/2007/10/macbookintel_mac_php_mysql_1.html
こんなのが出ましたが。mysql.sockが正しい位置に存在し、phpが読み込める状態かどうか確認すると良いかもしれません。

投稿日時 - 2008-02-18 14:32:56

補足

回答ありがとうございます。エラー表示は
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 というのを試してみましたがうまくいきませんでした。

投稿日時 - 2008-02-18 23:52:32

あなたにオススメの質問