2012-05-03 15 views
4

私は本当に奇妙な問題を抱えています。本当に私を悩まし始めています。これは、接続のさまざまな動作についてです。私はちょうどCakePHPを設定しようとしていますが、PDOはmysqlサーバに接続できません。PDOは接続できませんが、mysql_connect(PWなし)

Okey、ステップバイステップ:新鮮なコンピュータで、XAMPP(Win7)をインストールしてCakePHPをダウンロードしました。他に何もしなかった。 phpMyAdminで、私はPW 'test'でユーザー 'test'を作成し、データベース 'test'を所有しています。シンプル、そう?ここで

、phpMysqlAdminにおけるユーザー/権利テーブルの行:

User Host Password Global Rights GRANT 
test % Yes  USAGE   No 

今、本当の問題へ:この作品

$link = mysql_connect('localhost', 'test'); //<- not using the 3. parameter, 'password' 

をしかし、何が動作するはずです、doesnt:

$link = mysql_connect('localhost', 'test', 'test'); //<- using the 3. parameter, 'password' 

そして、私は「を使用してパスワード:YES」「削除」するように見えるカント以来、PDOのために、私はPDOのいずれかに接続カント(ケーキはPDOのを使用します):

$dbh = new PDO('mysql:host=localhost;dbname=test', 'test', 'test'); 

エラーメッセージ:

エラー!:SQLSTATE [28000] [1045]アクセス(パスワードを使用して:YES)、 'localhost' の@ユーザー '試験' のために拒否された、私がちょうど新しくインストールしたDBに接続したいので、複雑になるカント

正しい資格情報で私は間違って何をしていますか?私は多くの似たような質問を読んだが、自分自身の問題の解決策を見つけられなかった。

はい、パスワードは本当に 'テスト'です - 私はなぜmysql_connect()whitout PWが接続できるのかわかりません - デフォルトでPWとしてユーザ名を使用していますか?

これは本当に助けのためのハード

おかげで、 はあなたに素敵な一日を願っていることもカント。ここで

EDIT(質問への答え)

(ユーザーで:テスト):DB権のエントリ - ユーザーが本当に

Database Rights   GRANT 
test  ALL PRIVILEGES Nein 
+0

datebaseテストでユーザーテストを許可しましたが、user.Pleaseをテストするためのアクセス許可を与えていないようです。 –

+0

空の文字列をパスワードとして渡すのはどうですか? – kuba

+0

私はphpMyAdmin上で自動的にDB 'テスト'を作成しました:「同じ名前のDBを作成して権利を付与する」というような選択肢があります(私は自分の投稿を編集しました。 。 - はい、空の文字列を試しました。問題は実際には「パスワードを使用する:YES」と思われます。「いいえ」とすぐに問題ありません。しかし、PDOは常にその設定をアクティブにしているようです。 – Katai

答えて

3

GRANT ALL ON test.* TO [email protected] IDENTIFIED BY "test"; DB '試験' のためのすべての権限を持っているようです

上記のクエリをmysqlシェルで実行すると、すべてがうまくいくはずです。

+0

他に解決策はありますか?私はこれを行う権利がありません。 –

+1

残念ながら、問題はphpmyadminではなく、mysql権限であるためです。 –

関連する問題