web-dev-qa-db-ja.com

MySQL-エラー1045-アクセスが拒否されました

何らかの方法で、コマンドライン経由でMySQLにアクセスしようとすると、このエラーが発生しました。

[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

このHowToを使用して、運のないパスワードをリセットしようとしました。

Mysql completleyをアンインストールして再インストールしましたが、パスワードの入力を求められます。なぜそうなのか分かりません!

誰かがMySQLのデフォルトのインストールを手伝ってくれますか?.

環境

Fedora Core 10、フルルートアクセス、ApacheおよびPHPインストール済み

助けてくれてありがとう!!

編集

MySQlをアンインストールすると、残されたものがすべて完全に削除されます。これを行わないと、新規インストールにはなりません。

44
Abs

実際にルートパスワードを設定し、それを紛失/忘れた場合:

  1. MySQLを停止します
  2. Skip-grant-tablesオプションを使用して手動で再起動します:mysqld_safe --skip-grant-tables

  3. 次に、新しいターミナルウィンドウを開き、MySQLクライアントを実行します:mysql -u root

  4. 次のMySQLコマンドを使用して、rootパスワードを手動でリセットします。UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; MySQL 5.7を使用している場合(ターミナルでmysql --versionを使用して確認)、コマンドは次のとおりです。

    UPDATE mysql.user SET authentication_string=PASSWORD('password')  WHERE  User='root';
    
  5. 次のMySQLコマンドで特権をフラッシュします:FLUSH PRIVILEGES;

から http://www.tech-faq.com/reset-mysql-password.shtml

(多分、これはあなたが必要とするものではないでしょう、Abs、しかし、私はそれが将来この質問に出くわす人々に役立つかもしれないと思います)

83
David Z

パスワードなしで接続してみてください:

mysql -u root

最初のデフォルトは、rootアカウントのパスワードではないと考えています(明らかに、できるだけ早く変更する必要があります)。

13
Chad Birch

このコマンドを使用して、可能な出力を確認します

mysql> select user,Host,password from mysql.user;

出力

mysql> select user,Host,password from mysql.user;
+-------+-----------------------+-------------------------------------------+
| user  | Host                  | password                                  |
+-------+-----------------------+-------------------------------------------+
| root  | localhost             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | 127.0.0.1             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | %                     |                                           |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)
  1. このユーザーでは、許可を与えているにもかかわらず、管理者は別のホストからのログインを許可されません。その理由は、ユーザーadminはパスワードによって識別されないためです。
  2. もう一度GRANTコマンドを使用してユーザーadminにパスワードを付与します

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED by 'password'
    

その後、出力は彼のようになりますグラントリストを確認してください

mysql> select user,Host,password from mysql.user;

+-------+-----------------------+-------------------------------------------+
| user  | Host                  | password                                  |
+-------+-----------------------+-------------------------------------------+
| root  | localhost             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | localhost.localdomain | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| root  | 127.0.0.1             | *8232A1298A49F710DBEE0B330C42EEC825D4190A |
| admin | localhost             | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| admin | %                     | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
+-------+-----------------------+-------------------------------------------+
5 rows in set (0.00 sec)

たとえば、ユーザー「admin」などの目的のユーザーにログインを許可する必要がある場合は、一度GRANTコマンドを使用してコマンドを実行します。

これで、ユーザーはログインできるようになります。

4
vigremrajesh

現在のルートパスワードは空でなければなりません。次に、「新しいルートパスワード」の下にパスワードを入力して確認します。

1
princetailor

MySql Administratorに接続できませんでした。別のユーザーを作成し、すべての権限を割り当てることで修正しました。

その新しいユーザーでログインしましたが、うまくいきました。

0
Mysql user
  1. Mysqlコンソールに移動します
  2. Use mysqlと入力します。
  3. UPDATE mysql.user SET Password = PASSWORD( '')WHERE User = 'root' FLUSH PRIVILEGES; EXIT PASSWORD( '')は空でなければなりません
  4. 次に、wamp/apps/phpmyadmin ../ config.inc.phpに移動します
  5. $ cfg ['Servers'] ['$ I'] ['password'] = 'root';を見つけます。
  6. ['password']を['your old password']に置き換えます
  7. ファイルを保存する
  8. すべてのサービスを再起動し、localhost/phpmyadminに移動します
0
user4713247

同じエラーが発生しましたが、password_expiredYに設定されました。 現在受け入れられている回答 と同じアプローチに従うことで、その問題を修正できますが、代わりにMySQLクエリを実行します。

UPDATE mysql.user SET password_expired = 'N' WHERE User='root';
0
Brandon Mintern