MySQLのアクセス拒否エラー


9

私は共通の問題を抱えていますが、通常の解決策は機能していません。

ローカルで自分のサイトを表示しようとすると、次のエラーが発生します

    Access denied for user 'sitename'@'localhost' (using password: YES)

資格情報が間違って使用されていますが、それらがどこから来ているのかわかりません。app / etc / local.xmlを確認しましたが、すべての正しい資格情報を持っています。他のすべてのxmlファイルをディレクトリから削除しました(config.xmlを除く)。varフォルダーの内容を削除しました(何度も)

ローカルで他のmagentoサイトが動作しているので、サーバー設定は問題ないはずです。私はこれで本当に困惑していて、次に何をすべきかわからない。任意の助けいただければ幸いです。


DBアダプターの接続メソッドに移動し、接続メソッドの呼び出しの直前に、次のように配置します。 '$ e = new Exception(); Mage :: log($ e-> getTraceAsString()、null、 'logname'、true); ' このようなトレースを取得すると、よりコンパクトになります。次に、そのトレースで、奇妙なコードパスを確認します。また、PDOに渡される実際の資格情報も記録します。
Petar Dzhambazov 2013年

回答:


8

ユーザーsitename@localhostが問題のデータベースとテーブルにアクセスできるようにする必要があります。MySQLインスタンスのルートまたはスーパーユーザーとして次のSQLを使用して、権限を付与します。

GRANT ALL ON magento_local.* TO 'sitename'@'localhost';

MYSQLでの許可の詳細については、マニュアルを参照してください。http//dev.mysql.com/doc/refman/5.1/en/grant.html


答えてくれてありがとう。私は以前このオプションに出くわしましたが、うまくいくとは思いませんでした。user: 'sitename'とpass: 'yes'は正しい/指定されたdbクレデンシャルではないので、これが使用されている間違った詳細の問題を実際に解決しないか、または後でapp / etc / local.xmlで詳細を見つけることができると思いました誤った詳細で一度データベースに接続できる
Developerhper

mysqlに直接アクセスする場合と、ネットワーク経由の「localhost」を介してアクセスする場合には違いがあります。localhostの場所を明示的に付与する必要があります。
philwinkle 2013年

2
覚えて実行flush privilegesしてください:グラントコマンドの後
マシューハワース

5

local.xmlが上書きされている場合は、サイトでのようなものを含むファイルを検索してください<username>sitename</username>。この種の作業では、私はackを好みます:

ack --xml "<username>.*sitename.*</username>" app/

...または単に:

ack sitename app/

4

キャッシュをクリアしてみてください。サードパーティのキャッシュレイヤーを使用している可能性があります。それらを無効にしてください。最後のオプションはapp / etc / local.xmlの名前を変更してWebサイトを開くことです。Magentoはインストールプロセスを実行し、インストール中にlocal.xmlから古い暗号化キーを提供する必要があります。


1

他のすべての回答は、問題が何であった可能性があるかについてすべての可能性を絞り込むための優れた方法でした。このため、私は彼らのそれぞれが賛成票を投じるに値すると感じました。彼らは私の問題を直接解決しなかったので、私は礼儀として自分自身で答えるべきだと感じました。

この特定のサイトはモジュールとしてワードプレスを使用しています。このモジュールには、db認証情報と通常のmagento app / etc / local.xmlが含まれています。このモジュールがサイト全体に表示され、データベースに関連していることは知りませんでした。その結果、ここでも詳細を変更しないとサイトを表示できなくなりました。


0

私はこれを私のために解決した後、私は同じ問題を抱えていました:

  1. Magentoのオリジナルバージョンをダウンロードする
  2. app / etcをバックアップします(例:app / _etc)
  3. 元のMagentoフォルダーから元のアプリなどをアップロードします
  4. あなたのサイトに行ってMagentoのインストールプロセスを実行します。元のデータベース名、データベース設定(ユーザー/ pw)、暗号化キーを使用しました。
  5. app / etc / modulesを新しいETCフォルダーにアップロードします
  6. インストール後、ログインしてキャッシュをクリアできました。ウェブサイトは以前のように再び働いていました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.