买了一台阿里云服务器,新安装了一个MySQL5.7服务,到登录时却提示密码错误。

我明明安装的时候也没有更改密码,咋办呢?我决定通过免密码登录的方式来修改密码。

首先执行如下sql

update mysql.user  set password=password('root') where user='root'

不过提示了一个错误:

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

经过一番鼓捣,原来是我的mysql数据库下password这个字段已经被改了,现在叫 authentication_string

既然这样,就把上面那个SQL改一下就好了,

update mysql.user set authentication_string=password('root') where user='root' ;

我买的这个服务器系统版本看下图:

下面贴出完整的更改MySQL密码的步骤:

1、打开my.cnf文件加入skip-grant-tables

vim /etc/my.cnf 

2、重启MySQL服务,

/etc/init.d/mysqld restart

3、终端输入 mysql 通过免密码方式直接登录MySQL数据库,然后

use mysql

4、更新root用户的密码

update mysql.user set authentication_string=password('root') where user='root' ;

可以使用如下命令来更改mysql5.7的密码

ALTER USER 'root'@'localhost'IDENTIFIED BY '********'

关于MySQL的密码,有些需要注意的地方

MySQL 设置的密码中必须至少包含一个大写字母、一个小写字母、一个特殊符号、一个数字,密码长度至少为8个字符。

5、去除MySQL免密码登录配置

还是修改my.cnf文件,删掉skip-grant-tables这个配置,接着重启MySQL服务

/etc/init.d/mysqld restart

6、正常使用账号密码登录MySQL数据库

mysql -u root -p

如果有朋友修改MySQL5.7数据库密码,也出现ERROR 1054 (42S22)错误,可以参照这个教程来解决。