web-dev-qa-db-ja.com

コマンドラインを使用してmysqlユーザーのパスワードを変更する

コマンドラインを使用してデータベースユーザーのパスワードを更新しようとしていますが、機能していません。これは私が使用しているコードです:

mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';

誰かがこのコードの何が問題なのか教えてもらえますか。

71
user3310572

コードでは、パスワードを一重引用符で囲んでみてください。あるいは、mysqlの documentation に従って、次のように動作するはずです-

SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');

FLUSH PRIVILEGES;

最後の行は重要です。さもないと、パスワードの変更は残念ながら有効になりません。

編集:

私は地元でテストを実行しましたが、うまくいきました-

mysql>  set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)

私のバージョンは5です。次のコマンドを使用して、バージョンを確認できます-

SHOW VARIABLES LIKE "%version%";
98
hellboy

MySQL 5.7.6以降、ALTER USERを使用します

例:

ALTER USER 'username' IDENTIFIED BY 'password';

なぜなら:

  • SET PASSWORD ... = PASSWORD('auth_string')構文はMySQL 5.7.6で非推奨になり、将来のMySQLリリースで削除される予定です。

  • SET PASSWORD ... = 'auth_string'構文は非推奨ではありませんが、ALTER USERがパスワードを割り当てるための推奨ステートメントになりました。

30
Govind Rai

注:uはrootユーザーとしてログインする必要があります

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
14
vijay kumar

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

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

FLUSH PRIVILEGES;

MySQL 5.7.6より前では、これはコマンドラインから機能します。

mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"

テストするmysqlのインストールはありませんが、あなたの場合はそうだと思います

mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"
3

Windows 10では、現在のログインを終了し、コマンドラインでこれを実行するだけです

-> mysqladmin -u root password “newpassword”

ここで、rootの代わりに任意のユーザーを指定できます。

0
Napolean