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


84

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

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

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


さて、あなたはどのようなステップに従っていますか?単に入れるだけではうまくいきません。私が正しく覚えていれば、そのプロセスとそのコード。
Idris 2014

ああ。あなたはそれを行う方法のプロセスを覚えていますか?
user3310572 2014

これはもう少し詳細で、innovativethought.net
2007/05/17 /…

回答:


115

コードでは、パスワードを一重引用符で囲んでみてください。あるいは、mysqlのドキュメントに従って、以下が機能するはずです-

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%";

4
これを行うと、予期しないトークンの近くで構文エラーが返されます( '
user3310572 2014

1
どのバージョンのmysqlを使用していますか?バージョン5.0のドキュメントから上記の構文を選択しました。私が投稿したコマンドを試しましたか?
ヘルボーイ2014

4.0バージョンを使用していると思いますが、試してみました
user3310572 2014

コマンドはMySQLVer 14.14でうまく機能します。パスワードが引用符で囲まれ、パスワード内の引用符がすべてエスケープされていることを確認してください。
スネーバー2014年

1
不思議なことに、でもフラッシュした後、まだ私のために仕事をしません:-(私は、MySQL使用しています5.7.18-0ubuntu0.16.04.1
coding_idiot

37

MySQL 5.7.6以降、 ALTER USER

例:

ALTER USER 'username' IDENTIFIED BY 'password';

理由:

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

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


1
これは、PHPを介してMySQLと対話する場合にも当てはまりますか?
オールドボーイ2017

@Anthonyはい、MySQLのバージョンが5.7.6以上の場合
Govind Rai

私はMySQLを初めて使用します。ALTER USER ... IDENTIFIED BY ...正確には何をしますか?どのように異なりますUPDATE ... SET ...INSERT INTO ...
オールドボーイ2017

1
ALTER USER ... IDENTIFIED BY ...データベースのユーザー権限を構成するSQLステートメントです。UPDATEそしてINSERT名前のように、更新レコードを示唆し、データベース内のテーブルにレコードを挿入異なる機能を持っています。
Govind Rai

2
mariaDbでエラーが発生ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root' IDENTIFIED BY
PavelNiedoba19年



3

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';"

2

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

-> mysqladmin -u root password “newpassword”

rootの代わりに任意のユーザーを使用できます。


1

これは私にとってはうまくいきます。MYSQLWebページからソリューションを入手しました

MySQLでは、以下のクエリを実行します。

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';


-1

ログインルートはです/usr/local/directadmin/conf/mysql.conf。次に、フォローしてみてください

UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30';
FLUSH PRIVILEGES;

ホストはmysqlホストです。


1
動作しません。予期しないトークンの近くで構文エラーを返す( '
user3310572 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.