今天在安装MySQL的过程中到了最后一步,那就是给MySQL设置密码的时候突然出现了错误!!!
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
搞了半天才知道,可以通过免密码登录的方式更改密码。
首先我们进到mysql主配置文件当中去添加一行命令如下:
skip-grant-tables
添加完成后,保存,重启MySQL服务即可。
systemctl restart mysqld
再次登录mysql数据库,就可以直接免密码登录,然后再次修改密码,修改如下:
update mysql.user set authentication_string=password('密码') where user='用户' ;
退出mysql服务,再次登录即可!!!
接下来又遇到一个问题那就是MySQL密码突然过期了,提示错误信息:
ERROR 1862 (HY000): Your password has expired. To log in you must change
意思翻译过来就是:错误1862(HY000):你的密码已经过期。登录必须改变它使用一个客户端,支持过期的密码。
解决方法如下:
通过免密码方式登录MySQL服务,免密方式上面已经说了只需在配置文件加入一行skip-grant-tables参数即可,然后进入MySQL之后查看root用户的详细信息。
# mysql -u root -p
> use mysql
> select * from mysql.user where user='root' \G
查看信息如下:
*************************** 1. row ***************************
Host: localhost
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *AC241830FFDDC8943AB31CBD47D758E79F7953EA
password_expired: N
password_last_changed: 2015-11-11 16:52:49
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec)
把password_expired改成不过期
> update user set password_expired='N' where user='root';
> flush privileges;
> quit
最后注释 skip-grant-tables参数,重启MySQL服务,再次登录MySQL服务即可!!!