2017-01-24 14 views
5

私が見つけたすべての修正を試しましたが、root MySQLパスワードを変更できません。私はのための新しいパスワードを入力することを余儀なくされたときMySQLエラー:#1045 - ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)

#1045 - Access denied for user 'root'@'localhost' (using password: YES)

このすべてが始まっ:私はmysql -u rootに入力すると、シェルでは、私はPHP myadminというに行くとき、私はこれを取得

Access denied for user 'root'@'localhost' (using password: NO)

を取得しますMySQL。私はこれをどのように修正するか考えていないし、絶望的です。

ありがとうございます。

+2

シェルで** mysql -u root -p **を試してみましたか? –

+1

[MySQL ERROR 1045(28000):ユーザー 'bill' @ 'localhost'(パスワードは:YES)のアクセスが拒否されました] http://stackoverflow.com/questions/10299148/mysql-error-1045-28000-access-denied-for-user-billlocalhost-using-passw) – rkosegi

+1

だけでなく、あなたのパスワードが間違っています。そのような単純な。それを修正する方法:新しい、正しいものを使用してください。 –

答えて

1
First Run CMD mode 
E:\xampp\mysql\bin>mysql.exe -u root -p 

Screenshot: 

enter image description here

+0

これも試してみました。私はXAMPPの新しいバージョンをインストールしてしまいました。私はデータベースを失ったが、それはそれをした。 – SandyS

+0

MySQLのフレーバーとバージョンは非常に多いので、作業しているフレーバーとバージョンを特定する場合は、ヘルプを求めるときに役立ちます。それでも問題が解決しない場合は、エラーメッセージが役立ちます。 XAMPP固有の回答を追加しました。 –

5

GENERIC MYSQL INFO

MySQLのマニュアルを読んで起動するには:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

手順は、シャットダウンサービスをする方法を紹介し、オーバーライドのコマンドを使用して起動しますパスワードを必要としない場合は、パスワードをリセットします。マニュアルから:

MySQLサーバーを停止し、--skip-grant-tablesオプションで再起動してください。これにより、誰でもパスワードなしですべての特権で接続でき、ALTER USERSET PASSWORDなどのアカウント管理ステートメントが無効になります。これは安全ではないので、と組み合わせて--skip-grant-tablesを使用して、リモートクライアントが接続できないようにすることができます。

mysqlクライアントを使用してMySQLサーバーに接続します。 mysqlクライアントで

shell> mysql

、そのアカウント管理ステートメントが動作するように、権限テーブルをリロードするサーバーを教えて:

mysql> FLUSH PRIVILEGES;

サーバが --skip-grant-tablesで開始されたため、パスワードは必要ありません

'root'@'localhost'アカウントのパスワードを変更します。パスワードを使用するパスワードに置き換えます。別のホスト名部分を持つrootアカウントのパスワードを変更するには、そのホスト名を使用するように指示を変更します。

のMySQL 5.7.6以降:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

は、MySQL 5.7.5およびそれ以前:ユーザテーブル上の

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

、または直接:

UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';

XAMPP SPECIFIC

MySQLサービスを停止します。コマンドウィンドウを開きます。XAMPPのMySQLディレクトリに変更します。

> cd \xampp\mysql\bin\

は、セキュリティなしでサービスを実行します(あなたはmysqldを実行している注意は、MySQLない):MySQLのサービスは、このウィンドウで実行されます

> mysqld.exe --skip-grant-tables

ので、別のコマンドウィンドウを開いて、XAMPP MySQLディレクトリに切り替えます。

> cd \xampp\mysql\bin\

実行MySQLクライアント:

> mysql

更新パスワード:

mysql> UPDATE mysql.user SET password=PASSWORD('mynewpassword') WHERE user='root';

出口のMySQL:

mysql> \q

mysqld.exeをキャンセルする使用タスクマネージャまだ実行中です。 mysqlサービスを再起動します。

+0

私もこれを試しました - うまくいきませんでした。 – SandyS

+0

私はあなたが提案したが動作しないようにルートmysqlのパスワードを変更しようとしました。 'ERROR 1290(HY000):あなたがエラーを取得している場合、それはこのstatement' –

+0

を実行することはできませんので、MySQLサーバが--skip-grant-tablesオプションで実行している私は、パスワードを変更するには、コマンドを実行すると、私はこのエラーを得ました1290の場合、FLUSH PRIVILEGESコマンドを実行しなかったためです。これによりアカウント管理が再開されます。あなたは、MySQLの非標準のバージョンに問題がある場合(MariaDBはエラー1131を与えるように)、ユーザー・テーブルを更新する代わりに、直接のアカウント管理ステートメント使用することができます: 'UPDATEのmysql.user設定したパスワード= PASSWORD(「mynewpassword」)を、ユーザ= 'root'; ' –

関連する問題