MySQLのルートパスワードをリセットしようとしています。 mysqld_safe --skip-grant-tablesを実行し、ルートパスワードを更新し、ユーザーテーブルが存在することを確認しました。 mysqlデーモンを再起動したら、設定したばかりの新しいrootパスワードでログインしようとしましたが、ユーザー「root」エラーでアクセスが拒否されました。また、mysqlを完全に削除して再インストール(my.cnfファイルの削除を含む)しようとしましたが、まだ運がありません。誰も私が次に何ができるかについて何か提案がありますか?
前もって感謝します
それを見つけた!パスワードを変更したときにハッシュ化するのを忘れました。このクエリを使用して問題を解決しました。
update user set password=PASSWORD('NEW PASSWORD') where user='root';
PASSWORD('NEW PASSWORD')
を忘れて、新しいパスワードをプレーンテキストで入力しました
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');
これについては、MySQLリファレンスマニュアルをご覧ください。
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
詳細については、このページをご覧ください: ルートパスワードのリセット:Unix Systems
これは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でログイン
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQLドキュメントに Reset the Root Password があります。
パスワードをリセットする必要があります! 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」です。
私も周りを検索し、おそらくいくつかの答えはいくつかの状況に合うでしょう、
私の状況は、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.
私が時々遭遇する一般的なエラーは、-p
オプションなので、本当に使用しましたか?
mysql -u root -p
現在の最新のmysqlバージョン(8.0.16)では、これらの答えはどれもうまくいきませんでした。
いくつかの異なる答えを見て、それらを一緒に組み合わせた後、これは私がそれを使って終わったものです:
update user set authentication_string='test' where user='root';
お役に立てれば。
MySQL 5.7では、パスワードは「authentication_string」に置き換えられます。
つかいます
update user set authentication_string=password('myfavpassword') where user='root';
MySQL 5.7.6以降の場合:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5以前の場合:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
mysqladminコマンドラインユーティリティを使用してMySQLパスワードを変更します。
mysqladmin --user=root --password=oldpassword password "newpassword"
すべての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を起動すると、パスワードが削除されます...
@ktaからの回答を試みましたが、私にはうまくいきませんでした。
MySQL 8.0を使用しています
これは私のために働いた:
mysql>SET PASSWORD FOR 'root'@'localhost' = 'yourpassword'
非常に多くのコメントが、私はこの方法を助けられました:
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
あなた自身をチェックする。
Ubuntuでは、
Sudo dpkg-reconfigure mysql-server-5.5
置換5.5
現在のバージョンを使用すると、新しいルートパスワードの入力を求められます。
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」で変更します。