UPDATEステートメントを使ってMySQLのユーザーパスワードを変更する方法
MySQLのユーザーパスワードをUPDATEステートメントで変更するには、mysqlデータベース内のuserテーブルを更新します。基本的な構文は以下のとおりです。
基本構文
USE mysql;
UPDATE user
SET authentication_string = PASSWORD('new_password')
WHERE user = user_name AND host = host_name;最初の2つのステートメントは共通です。ユーザーのパスワードを変更するには、まずmysqlデータベースを選択し、その中のuserテーブルを更新する必要があるためです。
- new_password:MySQLユーザーに新しく設定したいパスワード
- user_name:パスワードを変更する対象ユーザーの名前
- host_name:対象ユーザーが接続するホスト名(例:localhost)
実行例
例えば、user@localhostというユーザーのパスワードを「tutorials」に変更したい場合は、次のように実行します。
USE mysql;
UPDATE user
SET authentication_string = PASSWORD('tutorials')
WHERE user = 'user' AND
host = 'localhost';
FLUSH PRIVILEGES;最後のFLUSH PRIVILEGES;は重要です。このコマンドを実行することで、権限テーブルの変更がメモリに再読み込みされ、新しいパスワードがすぐに反映されます。これを実行しないと、変更が有効になるまでサーバーの再起動が必要になる場合があります。
注意点:新しいバージョンでの推奨方法
なお、PASSWORD()関数はMySQL 5.7以降で非推奨となり、MySQL 8.0では削除されています。最新のバージョンでは、より安全でシンプルなALTER USERステートメントを使用することが推奨されます。
ALTER USER 'user'@'localhost' IDENTIFIED BY 'tutorials'; FLUSH PRIVILEGES;
古いバージョンのMySQLを扱う場合はUPDATEステートメントによる方法が有効ですが、可能であればALTER USERの利用を検討するとよいでしょう。
-
MySQLルートパスワードをリセットまたは変更する方法【ALTER USERコマンド解説】
MySQLのrootパスワードをリセットまたは変更するには、まず管理者モードでMySQLにログインする必要があります。ログイン後、mysqlデータベースに切り替えて、登録されているすべてのユーザーとホスト情報を確認できます。 1. ユーザー一覧の確認 以下のクエリを実行して、現在存在するユーザーとホストの一覧を表示します。 SELECT user,host FROM user; 実行結果は次のとおりです。 +------------------+-----------+ | user | host | +------------------+------
-
MySQLの終了ステートメント(デリミタ)を変更する方法
```html MySQLでは、ストアドプロシージャやトリガーなどを作成する際、処理の中にセミコロン(;)が含まれるため、デフォルトの終了記号のままでは正しく実行できないことがあります。そんなときは、DELIMITERコマンドを使って、文の終了記号を任意の記号に変更しましょう。DELIMITERコマンドの基本構文DELIMITER 任意の記号上記の「任意の記号」の部分には、自由に設定したい記号を指定できます。デフォルトの終了記号は「;」(セミコロン)で、一般的には「//」や「$$」などがよく使われます。実際の使用例それでは、まず終了記号を「//」に変更してテーブルを作成してみましょう。mysq