下面是详细的“mysql修改用户密码报错的解决方法”攻略:
问题描述
在使用mysql命令行修改用户密码时,输入完命令后按下回车,提示报错信息。
示例
命令行输入以下命令:
mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';
报错信息示例1:
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
报错信息示例2:
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
解决方法
解决报错1:Unknown column 'password' in 'field list'
出现这种情况,很可能是因为mysql版本不同,导致对应的语法不同。
在5.7以下的版本中,mysql.user
表中是有password
字段的。而在5.7及以上的版本中,mysql.user
表中已经不存在password
字段了,而是采用了authentication_string
来保存密码。
因此,我们需要修改上面的命令语句,使用authentication_string
来替代password
。语句如下:
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='root';
执行以上命令,即可顺利更新用户密码。
解决报错2:Field 'ssl_cipher' doesn't have a default value
出现这种情况,是因为在更新mysql.user
表数据时,没有赋值ssl_cipher
字段,而该字段又没有设置默认值,导致报错。
解决办法很简单,只需要在更新命令中添加ssl_cipher
字段,并且赋一个默认值即可。语句如下:
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123456'), ssl_cipher='' WHERE user='root';
执行以上命令,即可顺利更新用户密码。
总结
通过本文的讲解,我们了解到mysql修改用户密码的报错及其解决方法。在使用命令行修改mysql用户密码时,如果遇到了报错,可以通过上述两种方式解决。需要注意的是,在不同的mysql版本中,语法细节可能会有所不同,要格外注意。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql修改用户密码报错的解决方法 - Python技术站