最近几天来回切换各个Mysql版本重置密码,记录一下各个版本重置密码的方法。
MySql 5.5
语法格式:
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');
示例 :将账号root的密码改为root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
MySql5.6
SET PASSWORD FOR 'username'@'localhost' = 'new_password';
示例 :将账号root的密码改为root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
MySql5.7
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
或
ALTER USER 'username'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'new_password';
示例 :将账号root的密码改为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'root';
MySql8.0
ALTER USER 'username'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'new_password';
示例 :将账号root的密码改为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'root';
MySQL9.0
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
示例 :将账号root的密码改为root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
密码复杂度
#查询密码复杂度
show variables like 'validate%';
# validate_password_length :#密码最少长度,默认值是8最少是0
# validate_password_dictionary_file:#用于配置密码的字典文件,字典文件中存在的密码不得使用。
# validate_password_policy: #代表的密码策略,默认是MEDIUM .LOW是低
# validate_password_number_count :#最少数字字符数,默认1最小是0
# validate_password_mixed_case_count :#最少大写和小写字符数(同时有大写和小写),默认为1最少是0
# validate_password_special_char_count :#最少特殊字符数,默认1最小是0
#如需要密码最小长度为1就行了 可以如下这么设置
set global validate_password_length=1;
注意
username
是数据库账号localhost
是指账号对应的host主机字段值,需要按实际情况填写new_password
新密码mysql_native_password
mysql 在8.0+中可以设置密码的插件可以选择的更安全的插件还有caching_sha2_password
如果你是因为忘记了密码 连Mysql命令行都进不去,可以在启动mysql的时候加参数来跳过密码验证进入命令行
Linux系统在/etc/my.cnf mysqld组中加入 参数skip-grant-tables
Window系统找到对应的my.ini文件 在mysqld组中加入参数 skip-grant-tables
设置完参数后 重启mysql。再次进入mysql命令,不用加-p参数
mysql -uroot
就只能直接进入命令行执行重置密码的操作了,遇到共享内存相关的错误的需要先执行flush privileges;
后再去操作重置密码就好了。