买了一台阿里云服务器,新安装了一个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)
错误,可以参照这个教程来解决。