mysql 5.6启用强密码
mysql的密码策略通过插件的方式进行检查,插件的名称是validate_password,可通过如下方式安装:
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
Query OK, 0 rows affected (0.03 sec)
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS;
+-------------------------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------------------------+---------------+
| validate_password | ACTIVE |
+-------------------------------+---------------+
54 rows in set (0.00 sec)
mysql> exit
Bye
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT ##可以让mysqld在密码验证插件未启用的情况下启动失败
重启Mysql服务,
mysql> show variables like '%pass%';
+--------------------------------------+-----------------+
| Variable_name | Value |
+--------------------------------------+-----------------+
| disconnect_on_expired_password | ON |
| old_passwords | 0 |
| report_password | |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_public_key_path | public_key.pem |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+-----------------+
11 rows in set (0.00 sec)
可以看到,validate_password提供了一些额外的控制密码强度的参数控制。其完整含义可参考http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html和http://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html
mysql> set password = password('mysql');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set password = password('DFFEJd$:7'); -- $是特殊字符, 官方文档好像没有提及, @是可以的。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'passwor'DushJd$:7')' at line 1
mysql> set password = password('DFFEJd:7');
Query OK, 0 rows affected (0.00 sec)
这样新建的账户就强行启用密码策略了,但是已存在的用户还是原来的密码,可以正常的登录。所以此时需要更改这些用户的密码。mysql有个参数,按官方解释,如果设置这些账户的密码过期,也是可以阻止他们登录的,但5.6中实际上好像这个选项没生效。
mysql> alter user root@'172.18.30.193' password expire;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
到30.193的服务登录,还是可以上去。5.7的时候,好像就没有这个问题了。
相关文章
- linux下mysql修改root密码
- mysql 密码忘记解决办法
- mysql window服务重新安装
- MySQL DATE_FORMAT() 函数
- 为什么 MySQL 执行完 Delete 操作之后,空间没有释放?
- centos7 设置 mysql 登录密码
- 如何在 Linux 中重置 MySQL 或者 MariaDB 的 root 密码
- [转]mysql update case when和where之间的注意事项
- MySQL 认证密码相关
- mysql -5.7.31 修改root密码
- Linux--忘记MySQL密码的解决方法和输入mysqld_safe --skip-grant-tables &后无法进入MySQL的解决方法
- MySQL关闭密码强度验证功能
- ubuntu部署安装 MySQL 5.7
- mysql 诡异的1054错误
- 在linux下登录MySQL,发现无法输入密码?
- 基于Python+MySQL实现(Web)学生成绩管理系统【100010288】
- hive schematool -initSchema -dbType mysql 报错
- Linux-012-Centos mysql 5.6.50 忘记密码,重置密码
- 首次启动mysql服务,设置root账户密码,mysql5.1免安装版
- MySQL忘记root密码的解决方案
- windows下远程连接Mysql
- MySQL日志模块
- 【转】Linux学习---CentOS 7编译安装MySQL 8.0
- MYSQL 两日期之间的工作日(除去周六日,不考虑节假日)
- mysql skip-grant-tables 后要多次重启 和验证登录检查确认密码生效
- 破解本地MySQL数据库密码
- Mysql 常见错误 之 Install/Remove of the Service Denied!
- hbase结合hive和sqoop实现数据指导mysql
- Linux中连接mysql执行sql文件
- 使用systemctl启动mysql,不使用mysqld_safe
- mysql压缩表,mysql行压缩与页压缩
- mysql忘记密码/修改密码
- mysql数据库备份恢复教程
- MySQL/MariaDB重置root密码、配置慢查询日志
- 出现Authentication plugin 'caching_sha2_password' 的原因及 解决方案,MySQL 8.+ 修改密码策略
- MySQL重置root密码
- MySQL开启general_log跟踪sql执行记录