mysqlのrootパスワードを空に戻す方法は?


43

ローカルで作業している場合、データベースにアクセスするためにパスワードを入力する必要はありません。mysqlを最初にインストールしたときにルートパスワードを変更しましたが、パスワードを元に戻す方法がわかりません。私は何をすべきか?

回答:


43

ルートパスワードを変更するにはnewpassword

 mysqladmin -u root -p'oldpassword' password 'newpassword'

rootがパスワードを必要としないように変更するには:

 mysqladmin -u root -p'oldpassword' password ''

注:私は間にスペースがないことを重要だと思う-pし、'oldpassword'私はそれについて間違っている可能性がありますが、


3
エラーが発生し続けます: 'root' @ localhostのアクセスが拒否されました。どうすれば修正できますか?
tq

私の作品:mysqladminは-uルート-p'oldpassword」パスワード『』 @tq:あなたはextactly oldpassword入力する必要があります
BAOナム

15

パスワードを削除するのではなく(そのサーバーを野生にさらすと将来的に不快な結果になる可能性があります)、現在のパスワード(およびユーザー名~/.my.cnf)を次のように(またはWindowsでおそらく同等の場所に)配置します:

[client]
user = root
password = s3kr1t

これにより、MySQLは提供された資格情報を使用して自動ログインする素晴らしい機能を提供します。


7
  1. mysqldを停止し、-- skip-grant-tablesオプションで再起動します。
  2. mysqlだけを使用して接続します。
  3. ルートパスワードを変更します。

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

    フラッシュ特権;

参考:公式mysqlのドキュメント


1
これは機能しますが、強引な方法です。これは、パスワードがわからない場合に適しています。
デビッド

6

MySQL 5.7以降、validate_passwordプラグインはデフォルトでアクティブになり、空のパスワードを使用できなくなります。

空のパスワードを許可するには、このプラグインを無効にする必要があります。

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

セキュリティを気にしない限り、@ wombleのアドバイスに従い、パスワード.my.cnfと便利なファイルを使用する必要があることに注意してください。

このトピックに関する私の記事「MySQLルートパスワードの削除」を確認してください。


バージョン5.6以降では、これが唯一の機能する方法です。以前のバージョンでも動作するはずです。
ディエゴ

1

新しいバージョン

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

これによりパスワードが削除されます

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.