コマンドラインを使用してデータベースユーザーのパスワードを更新しようとしていますが、機能していません。これは私が使用しているコードです:
mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';
誰かがこのコードの何が問題なのか教えてもらえますか。
コードでは、パスワードを一重引用符で囲んでみてください。あるいは、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%";
ALTER USER
を使用します例:
ALTER USER 'username' IDENTIFIED BY 'password';
なぜなら:
SET PASSWORD ... = PASSWORD('auth_string')
構文はMySQL 5.7.6で非推奨になり、将来のMySQLリリースで削除される予定です。
SET PASSWORD ... = 'auth_string'
構文は非推奨ではありませんが、ALTER USER
がパスワードを割り当てるための推奨ステートメントになりました。
注:uはrootユーザーとしてログインする必要があります
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
これは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';"
Windows 10では、現在のログインを終了し、コマンドラインでこれを実行するだけです
-> mysqladmin -u root password “newpassword”
ここで、rootの代わりに任意のユーザーを指定できます。