进入数据库后产生的问题:
前言:MariaDB10.3.27 避开密码策略设置:
UPDATE mysql.user SET password = PASSWORD('root') WHERE USER = 'root';
FLUSH PRIVILEGES;
失败命令分析
1.设置密码命令:
SET password for 'root'@'localhost'=password('root');
问题:
Your password does not satisfy the current policy requirements
原因:
mariadb 含有密码策略,该策略限制了密码设定
/etc/my.cnf配置文件如下:
#数据库密码插件及配置
# 密码中至少包含几位数字
simple_password_check_digits=N
# 密码中至少几位字母
simple_password_check_letters_same_case=N
# 密码至少几位
simple_password_check_minimal_length=N
# 密码中特殊符号(非字母和数字)至少几位
simple_password_check_other_characters=N
# cracklib字典的路径
cracklib_password_check=DIR
将上述插件注掉即可解决,或者设置为符合以上条件的密码
2.设置密码命令:
该命令不需要在mysql内部使用
mysqladmin -u root password 'root';
问题:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘mysqladmin -u root password ‘root’’ at line 1
原因:
该命令本身存在问题
3.设置密码命令:
UPDATE mysql.user SET password = PASSWORD('root') WHERE USER = 'root';
刷新很重要
FLUSH PRIVILEGES;
成功信息:
Query OK, 4 rows affected (0.006 sec)
Rows matched: 4 Changed: 4 Warnings: 0
分析
两条命令的执行方式区别如下: