現在の環境:
mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.13 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.13 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+
8 rows in set (0.01 sec)
パスワード変更コマンドのユーザー:
mysql> update user set password=PASSWORD("XXXX") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
私は何を逃したことがありませんか?
ベストアンサー1
MySQL 5.7では、テーブルフィールドpassword
のフィールドがmysql.user
削除され、フィールド名はですauthentication_string
。
まずデータベースを選択します。
mysql> use mysql;
次にテーブルを表示します。
mysql> show tables;
テーブルを探してuser
そのフィールドを表示できます。
mysql> describe user;
password
Passwordというフィールドがなく、Passwordというフィールドがあることがわかりますauthentication_string
。したがって、次のようにします。
update user set authentication_string=password('XXXX') where user='root';
@Rui F Ribeiroが提案したように、以下を実行することもできます。
mysql> SET PASSWORD FOR 'root' = PASSWORD('new_password');