MySQLの管理者アカウントパスワードをリセットまたは回復する方法


14

「継承」したMySQLデータベースがあり、管理者の資格情報が与えられていません。ただし、それが実行されているボックスにはアクセスできます。管理者の資格情報を回復するか、新しい資格情報を作成する方法はありますか?

回答:


15

MySQLリファレンスマニュアルのルートパスワードのリセットに関する章を読んで実行します

このプロシージャは、認証なしでmysqlデーモンを起動し、資格情報を提供せずに接続できるようにします。このモードでは、正常に接続し、パスワードと許可をリセットできます。その後、適切な権限を与えてmysqlを再起動することを忘れないでください。


6

これがDebian / Ubuntuボックスの場合、debian-sys-maintと呼ばれる特別なルート相当アカウントがあります。パスワードは/etc/mysql/debian.cnfで読むことができます

そのパスワードを使用して、次を使用してdebian-sys-maintとしてmysqlにログインできます。

mysql --defaults-file=/etc/mysql/debian.cnf mysql

ログインしたら、次を実行します。

update user set password=password('<new password>') where user='root';
flush privileges;
quit;

これで、新しいパスワードを使用してルートにアクセスできるようになります。

mysql -uroot -p

3

ルートユーザーが存在しませんでした。オン

CREATE USER root@localhost;

わかった

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解決策は

mysqld_safe  --skip-grant-tables &
mysql
INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;

その後、私はこれから少し助けてすべての特権を1つずつ追加しました:

mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N

(そして、これはもっと自動化できますし、そうすべきです)

注:正しい数の「Y」を見つけることはINSERTPITAです。


0

MySQLリファレンスマニュアルの手順はあまり明確ではないため、ここでは簡単な言葉で答えようとしています。(この回答はMacBook OSXユーザーに関連しています):

  1. 現在のパスワードがわからないため、MySQLサーバーは現在のログイン資格情報をスキップ/バイパスする必要があります。次の方法で、アクセス許可テーブルをスキップするようにMySQLサーバーに指示します。
    • MySQLサーバーを停止します(既に実行されている場合)。
    • MySQL構成ファイルを見つけますmy.cnf。(私にとっては@に配置されていました/Applications/XAMPP/xamppfiles/etc。見つからない場合は検索できます)。
    • my.cnf任意のテキストエディターでファイルを開きます。
    • セクション"skip-grant-tables"の最後に(引用符なしで)追加し[mysqld]、ファイルを保存します。
    • 次に、MySQLサーバーを起動します。skip-grant-tablesオプションで始まります。
  2. コマンドを 開いTerminalて実行するmysql
  3. コマンドを実行する mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
  4. コマンドを実行する mysql> FLUSH PRIVILEGES;
  5. コマンドを実行する mysql> exit
  6. MySQLサーバーを再起動します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.