web-dev-qa-db-ja.com

MySQLルートパスワードの変更

MySQLのルートパスワードをリセットしようとしています。 mysqld_safe --skip-grant-tablesを実行し、ルートパスワードを更新し、ユーザーテーブルが存在することを確認しました。 mysqlデーモンを再起動したら、設定したばかりの新しいrootパスワードでログインしようとしましたが、ユーザー「root」エラーでアクセスが拒否されました。また、mysqlを完全に削除して再インストール(my.cnfファイルの削除を含む)しようとしましたが、まだ運がありません。誰も私が次に何ができるかについて何か提案がありますか?

前もって感謝します

53
nick

それを見つけた!パスワードを変更したときにハッシュ化するのを忘れました。このクエリを使用して問題を解決しました。

update user set password=PASSWORD('NEW PASSWORD') where user='root';

PASSWORD('NEW PASSWORD')を忘れて、新しいパスワードをプレーンテキストで入力しました

18
nick

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');

76
kta

これについては、MySQLリファレンスマニュアルをご覧ください。

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

詳細については、このページをご覧ください: ルートパスワードのリセット:Unix Systems

47
VSB

これはWAMP v3.0.6以降の更新された回答です

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

>FLUSH PRIVILEGES;

MySQLバージョン5.7.xでは、mysqlテーブルにパスワードフィールドはありません。 authentication_stringに置き換えられました。

以下の手順に従ってください。

ステップ1。 mysqlを停止します

ステップ2。 _Sudo mysqld_safe --skip-grant-tables_

step3 ._mysql -u root_

step4 ._use mysql;_

step5 ._show tables;_

step6 ._describe user;_

step7 .update user set authentication_string=password('1111') where user='root';

パスワード1111でログイン

12
Loki Chandu
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQLドキュメントに Reset the Root Password があります。

5
iamfaith

パスワードをリセットする必要があります! mac osx(テスト済みおよび動作中)およびubuntuの手順

MySQLを停止します

$ Sudo /usr/local/mysql/support-files/mysql.server stop

セーフモードで起動します。

$ Sudo mysqld_safe --skip-grant-tables

(上記の行はコマンド全体です)

これはプロセスが終了するまで継続するコマンドなので、別のシェル/ターミナルウィンドウを開き、パスワードなしでログインします。

$ mysql -u root

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

MySQLを起動します

Sudo /usr/local/mysql/support-files/mysql.server start

新しいパスワードは「password」です。

5
tk_

私も周りを検索し、おそらくいくつかの答えはいくつかの状況に合うでしょう、

私の状況は、Ubuntu 18.04.2 LTSシステム上のMysql 5.7です。

(ルート権限を取得)

$ Sudo bash

(root dbユーザーのパスワードを設定+セキュリティを段階的に実装)

# mysql_secure_installation

(ソケットの代わりにパスワードを介してrootユーザーにアクセスを許可します)

(+編集:どうやらパスワードを再設定する必要があるようです?)

(「mySecretPassword」に設定しないでください!!!)

# mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); 
mysql> FLUSH PRIVILEGES;
mysql> exit;

# service mysql restart

このすばらしい答え (数時間検索した後...)の zetac (および erich )に感謝

お楽しみください:-D

S.

4
Bamboomy

私が時々遭遇する一般的なエラーは、-pオプションなので、本当に使用しましたか?

mysql -u root -p
2
Marian Theisen

現在の最新のmysqlバージョン(8.0.16)では、これらの答えはどれもうまくいきませんでした。

いくつかの異なる答えを見て、それらを一緒に組み合わせた後、これは私がそれを使って終わったものです:

update user set authentication_string='test' where user='root';

お役に立てれば。

2
Suhas

MySQL 5.7では、パスワードは「authentication_string」に置き換えられます。

つかいます

update user set authentication_string=password('myfavpassword') where user='root';
2
Kamal Reddy

MySQL 5.7.6以降の場合:

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

MySQL 5.7.5以前の場合:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
1
Eagle_Eye

mysqladminコマンドラインユーティリティを使用してMySQLパスワードを変更します。

mysqladmin --user=root --password=oldpassword password "newpassword"

ソース

1
Darush

すべてのwampサービスを停止し、wampを終了します。

メモ帳を開いて、「SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD( '');」と入力します。

次に、c:ドライブに任意の名前で保存します。このような「c:/example.txt」

これで、「wamp」falder wamp> bin> mysql> mysql(your version)> bin in my case path is "C:\ wamp\bin\mysql\mysql5.6.17\bin"

パスをコピーし、(ctrl + r)でcmdを実行し、「cmd」と入力します(入力)

cdと入力し、cmdを右クリックしてパスを貼り付け(入力)、今すぐ(mysqld --init-file = C:\ example.txt)を中かっこなしで入力してから(入力)

その後、PCを再起動するか、taskmgrを開いてmysqld.exeを強制終了します

wampを起動すると、パスワードが削除されます...

0
MohitGhodasara

@ktaからの回答を試みましたが、私にはうまくいきませんでした。

MySQL 8.0を使用しています

これは私のために働いた:

mysql>SET PASSWORD FOR 'root'@'localhost' = 'yourpassword'

0
chainstair

非常に多くのコメントが、私はこの方法を助けられました:

Sudo mysqladmin -u root password 'my password'

私の場合、インストール後、rootユーザーのパスワードなしでmysqlサービスを取得していたため、セキュリティのためにパスワードを設定する必要がありました。

MacOSユーザーの場合、rootパスワードを忘れた場合、@ thusharaKの答え( https://stackoverflow.com/a/28601069/5628856 )は良いですが、もう少しトリックがあります:

システム設定を使用してmysqlサーバーサイドを起動する場合は、単に

Sudo mysqld_safe --skip-grant-tables

うまくいかないかもしれません。

コマンドライン引数がシステム起動設定と同じであることを確認する必要があります。

次のコマンドが動作します:

/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables

使用できます

ps aux | grep mysql

あなた自身をチェックする。

0
Shaofei Cheng

Ubuntuでは、

Sudo dpkg-reconfigure mysql-server-5.5 

置換5.5現在のバージョンを使用すると、新しいルートパスワードの入力を求められます。

0
Mouneer

MySQL 8.0.4以降

現在のrootユーザーを更新するには:

select current_user();
password set password = 'new_password';

他のユーザーを更新するには:

'otherUser' @ 'localhost' = 'new_password'のパスワードを設定します。

パスワードを更新する前にパスワードポリシーを設定するには:

グローバルなvalidate_password.policy = 0を設定します。
password set password = 'new_password';
'otherUser' @ 'localhost' = 'new_password'のパスワードを設定します。

ルートパスワードを更新する他の/より良い方法:

mysql_secure_installation



レガシアプリを引き続き使用できるように5.x認証に固執したいですか?

My.cnfで

default_authentication_plugin = mysql_native_password

ルートを更新するには:

グローバルなvalidate_password.policy = 0を設定します。
mysql_native_passwordで識別されるユーザー「root」@「localhost」を「new_password」で変更します。

0
Carlito