4

私はここで本当に奇妙な問題を抱えています、そしてそれは本当に私を苛立たせ始めています。これは、接続のさまざまな動作に関するものです。CakePHPをセットアップしようとしていますが、PDOはmysqlサーバーに接続できません。

わかりました、ステップバイステップ:これは新しいコンピューターです。XAMPP(Win7に)をインストールしてCakePHPをダウンロードしました。他には何もしませんでした。phpMyAdminで、PW「test」を使用してユーザー「test」を作成しました。彼はデータベース「test」を所有しています。簡単ですよね?

ここで、phpMysqlAdminのUser/Rightsテーブルの行は次のとおりです。

User Host Password Global Rights GRANT
test %    Yes      USAGE         No

さて、本当の問題に:

これは機能します:

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

しかし、何がうまくいくべきか、そうではありません:

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

また、PDOの場合は「パスワード:YES」を使用して「削除」できないように見えるため、PDOにも接続できません(ケーキはPDOを使用します)。

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

エラーメッセージ:

エラー!:SQLSTATE[28000][1045]ユーザー'test'@'localhost'のアクセスが拒否されました(パスワードを使用:YES)

それほど複雑にすることはできません。正しい資格情報を使用して、新しくインストールしたDBに接続したいだけです。私は何が間違っているのですか?私は多くの同様の質問を読みましたが、私自身の問題の解決策を見つけられませんでした。

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

これは本当に難しいことではありません

助けてくれてありがとう、良い一日を。

編集(質問への回答)

ここにDB権限のエントリ(ユーザー:test):-ユーザーは実際にDB'test'のすべての権限を持っているようです

Database Rights         GRANT 
test     ALL PRIVILEGES Nein
4

1 に答える 1

3

GRANT ALL ON test.* TO test@localhost IDENTIFIED BY "test";

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

于 2012-05-03T07:41:17.160 に答える