GNU/Linux >> Linux の 問題 >  >> Linux

MySQLルートパスワードをリセットする方法

この記事では、2つの異なる方法でMySQLルートパスワードをリセットする方法を紹介します。また、どちらの方法もOracleフリーのMariaDBフォークで機能します。

なぜですか?

ルートパスワードをリセットする必要がある主な理由は2つあります。

  • そのパスワードを忘れた
  • あなたはわからない そのパスワード

パスワードを知らない理由はたくさんあります。パスワードを知らなかったため、古いDBAがなくなってしまいました。誰かが楽しみや悪意のある理由で変わった。午前3時、システムがクラッシュし、dbaが別の国で休暇中などです。

実際のところ、ある朝、データベースにデータを詰め込んでこの状況に到達する必要があります。

あなたにはスーパーユーザーがいると思います(つまり、 su またはsudo ルートへ)オペレーティングシステムへのアクセス。このチュートリアルの私のオペレーティングシステムはDebianLinuxです。

どちらの方法でも、前にmysqlサービスを停止する必要があります。でそれを行います(必要に応じてsu / sudoを忘れないでください):

# service mysql stop

方法1:

SQLコマンドを使用してファイルを作成し、mysqlstartで使用する新しいrootパスワードを設定します。任意のテキストエディタを使用するか、次のように入力するだけです。

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

テキストエディタを選択した場合は、太字部分のみを含むファイルを作成します。もちろん、本物を選択してください パスワード、覚えやすく、見つけにくい。

そして、ユーザーmysql(-u mysql)と前に作成したファイル(–init-file:passreset.sql)を使用して手動で開始します。完全なコマンドラインは次のようになります:

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

次のメッセージが表示されるまで待ちます: mysqld:接続の準備ができました 。次に、別のコンソールを開いて、新しいルートパスワードをテストします。

方法2:

過去に、インターネットでmysqlrootパスワードをリセットする方法を何度か見てきました。今朝の最初の試行ではうまくいきませんでしたが、回避策を見つけました。

mysqldコマンドのこのスイッチを使用します:

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

これにより、すべてのテーブルに完全にアクセスできるようになりました。手順はmysqlに接続し、前の方法で見たALTER USERコマンドを実行することですが、skip-grant-tablesで実行されているmysqldについてエラーが発生しました。

回避策は、スイッチskip-grant-tablesを使用してmysqlユーザーを使用してmysqldを実行することです。完全なコマンドラインは次のとおりです。

# mysqld -u mysql --skip-grant-tables

また、別のコンソールで、更新前に特権をフラッシュしてから、特権を再度フラッシュします。

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

終了

これで、mysqlを停止して通常どおりに開始できます。私の場合、ctrl-cはそれを停止するために機能しませんでした。前に、手動で開始したプロセスを強制終了する必要があります:

# killall mysqld
# service mysql start

これで、MySQLまたはMariaDBの制御を取り戻すことができます。


Linux
  1. CentOS6でMySQLルートパスワードをリセットする方法

  2. ルートMySqlパスワードをリセットする方法

  3. Ubuntuのパスワードをリセットする方法は?

  1. MySQLまたはMariaDBのルートパスワードをリセットする方法

  2. ルートパスワードをリセットする方法MySQLサーバー

  3. MySQLルートパスワードをリセットする方法は?

  1. ルートMySqlパスワードをリセットする方法

  2. MySQLルートパスワードをリセットする方法

  3. MySQLルートパスワードをリセットする