0

昨日、すべてが正常に機能していました。今日、mysqlを起動すると、次のエラーメッセージが表示され始めます

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

いつ、どのようにパスワードを設定するのかわかりません。

今、パスワードを設定しようとしていますが、更新されていません。

次の手順を使用してパスワードを回復しています。

  1. Mysql サービスを停止する
  2. これをcmdに書きます:

C:\Program Files\MySQL\MySQL Server 5.5>mysqld.exe --defaults-file="my.ini" --init-file="d:\mysql-init.txt" --console

進行状況が表示され始めますが、このメッセージの後に応答が停止します

160504 18:01:54 [Note] Server socket created on IP: '0.0.0.0'.
160504 18:01:54 [Note] Event Scheduler: Loaded 0 events
160504 18:01:54 [Note] mysqld.exe: ready for connections.
Version: '5.5.38'  socket: ''  port: 3306  MySQL Community Server (GPL)

10分以上待ったのですが、その後進展がありません..

この問題を解決する方法を教えてください。

ありがとう

4

3 に答える 3

2

mysql サービスを停止します

my.iniファイルまたはmy.cnfファイルを編集する

ini ファイルでセクションを見つけ、[mysqld]この行をセクションの直後に追加します[mysqld]

skip-grant-tables

mysql サービスを再起動します。

MySQL コンソールを開く

ここで、root ユーザーのパスワードをリセットします。もちろん、これを使用して任意のユーザー パスワードをリセットできます。

次の 2 つのコマンドを mysql> コマンド プロンプトで入力します。それぞれの行の末尾にセミコロンを付けて入力し、各行の後に ENTER を押してコマンドを mysql に発行します。

MYSQL バージョン 5.7 より前

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

Post MYSQL バージョン 5.7 で列名が変更されました

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

更新により、複数の行が更新されたと報告される場合があることに注意してください。実際には、ユーザー ID が「root」で、それぞれが異なるドメイン (127.0.0.1、localhost、::1) を持つユーザー アカウントが 3 つあるためです。

ここquitで、mysql コマンド プロンプトで と入力して、mysql を終了します。

mysql サービスを停止します

my.ini ファイルまたは my.cnf ファイルを編集します

ini ファイルで {mysqld] セクションを見つけ、skip-grant-tables先ほど追加したパラメーターを削除します。

このパラメーターを ini ファイルに残したままにしないでください。大きなセキュリティ ホールです。

mysql サービスを再起動します。

これで、ユーザー ID 'root' とそのユーザーに設定した新しいパスワードを使用して、phpmyadmin でログインできるはずです。

于 2016-05-04T13:32:10.247 に答える
1
  1. mysql サービスを停止する

    /etc/init.d/mysql 停止

  2. mysql 権限をスキップする

    /usr/bin/mysqld_safe --user=mysql --skip-grant-tables

  3. cmdを開いて書き込みます

    mysql

  4. 次に、このコマンドでデータベースを使用しましょう。

    MY_DATABASE_NAME を使用します。

  5. 次のコマンドで root ユーザーのフィールド パスワードを更新します。

    UPDATE user SET Password=PASSWORD('ourpassword') WHERE user='root';

  6. コマンドを終了します。

    出口

  7. 新しいデータベース セッションを開始します。

    mysql -u ルート -p

于 2016-05-04T13:11:04.583 に答える
1

ステップバイステップに従って、mySQL root パスワードを変更します。

1) 管理者としてサーバーにログオンします。

2) MySQL サービスを停止するか、タスク マネージャーから [mysqld-nt.exe] を終了します [services.msc から動作しない場合]。

3) 次のステートメントを含むテキスト ファイルを作成します。

UPDATE mysql.user SET Password=PASSWORD('test@123') WHERE User='root'; フラッシュ特権;

4) ファイルを保存します。この例では、ファイルの名前は C:\mysql-init.txt になります。

5) コマンド プロンプトに移動します。 --init-file オプションを使用して MySQL サーバーを起動します。

6) C:> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt

于 2016-05-04T13:10:49.980 に答える