一台安装的MySQL5.7的服务器,久未登录,忘记密码,使用通用的免密码登录的方式更改密码,输入
mysql > update mysql.user set password=password('root') where user='root';
时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',
原来是mysql数据库下已经没有password这个字段了,password字段改成了
authentication_string
所以更改语句替换为update MySQL.user set authentication_string=password('root') where user='root' ;即可
系统环境:
[root@centos6 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@centos6 ~]# uname -r
2.6.32-431.el6.x86_64
[root@centos6 ~]# mysql --version
mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper
完整的更改mysql密码的方式如下:
vim /etc/my.cnf
#加入skip-grant-tables
重启MySQL,
/etc/init.d/mysqld restart
终端输入 mysql 直接登录MySQL数据库,然后use mysql
update mysql.user set authentication_string=password('root') where user='root' ;
编辑my.cnf文件
删掉skip-grant-tables 这一行,然后重启MySQL,
/etc/init.d/mysqld restart
否则MySQL仍能免密码登录
mysql -u root -p
然后输入密码即可登录MySQL数据库