MySQL5.7.12新密码登录方式及密码策略
MySQL5.7.12新密码登录方式及密码策略
在Centos6.6上安装MySQL5.7.12时,遇到了一个问题
安装后在/root目录下没有发现有.mysql_secret这个文件,所以没有没法按照官方文档上说的那样使用,这里记录下,
解决方式:
[root@test ~]# mysqld_safe --skip-grant-tables &] ~]# --19T12::.564385Z mysqld_safe Logging to --19T12::.589376Z mysqld_safe Starting mysqld daemon with databases from /var/lib/~]# -ef | : pts/ :: /bin/ /usr/bin/mysqld_safe --skip-grant- : pts/ :: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysqld.log --pid-=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/[root@test ~]# mysql
成功登录MySQL后:
切换到mysql系统库:mysql> use mysql;修改root账户登录密码:mysql> update user set password=password('') where user='root'; ERROR 1054 (42S22): Unknown column 'password' in 'field list'---报错没有password这个数据字段列描述user表mysql> desc user; ...| authentication_string | text | YES | | NULL | || password_expired | enum('N','Y') | NO | | N | || password_last_changed | timestamp | YES | | NULL | || password_lifetime | smallint(5) unsigned | YES | | NULL | || account_locked | enum('N','Y') | NO | | N | |+------------------------+-----------------------------------+------+-----+-----------------------+-------+---没发现password列,但是找到这5个跟密码相关的数据字段查询一下相关的密码信息:mysql> select user,host,authentication_string,password_expired from user;+-----------+-----------+-------------------------------------------+------------------+| user | host | authentication_string | password_expired |+-----------+-----------+-------------------------------------------+------------------+| root | localhost | *9AA01F6E2A80A823ACB72CC07337E2911404B5B8 | Y || mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | N |+-----------+-----------+-------------------------------------------+------------------+---到这里不难发现root账户的密码已过期,还比5.6多出了一个mysql.sys用户修改密码mysql> update user set authentication_string=password('123abc') where user='root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)mysql> exit
密码修改成功,测试:
/etc/init.d/- is .-enterprise-commercial-mysql (HY000): You must reset your password using root@ identified (HY000): Your password does satisfy the @ identified rows affected ( information_schema mysql performance_schema sys rows ( sec)
关于密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';+--------------------------------------+--------+| Variable_name | Value |+--------------------------------------+--------+| 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 |+--------------------------------------+--------+6 rows in set (0.02 sec) mysql> show plugins;+----------------------------+----------+--------------------+----------------------+-------------+| Name | Status | Type | Library | License |+----------------------------+----------+--------------------+----------------------+-------------+| binlog | ACTIVE | STORAGE ENGINE | NULL | PROPRIETARY |...| validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | PROPRIETARY |+----------------------------+----------+--------------------+----------------------+-------------+---可以通过在配置文件[mysqld]标签中添加 validate_passwor=off ,来关闭密码策略如下: ...| validate_password | DISABLED | VALIDATE PASSWORD | validate_password.so | PROPRIETARY |+----------------------------+----------+--------------------+----------------------+-------------+
总结
1) 安装好mysql后,第一次启动时,root管理密码会在/root/.mysql_secret中随机生成
2) 至5.7后,MySQL的 mysql.user 表中的密码字段由之前的 password 改为 authentication_string
3) 使用--skip-grant-tables 参数启动,跳过MySQL的授权验证,--skip-networking参数,跳过远程登录
4) 修改MySQL密码方式:
法1:update user set authentication_string=password('123abc') where user='root';
法2:set password=password('newpassword');
法3:alter user root@'localhost' identified by 'oracle';
法4:在shell下使用MySQL工具:mysqladmin -uroot -poldpassword pasword "newpassword"
5) 关于MySQL密码策略:
决定是否使用该插件(及强制/永久强制使用)
--validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT
validate_password_dictionary_file > 插件用于验证密码强度的字典文件路径。
validate_password_length > 密码最小长度。
validate_password_mixed_case_count > 密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count > 密码至少要包含的数字个数。
validate_password_policy > 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count > 密码至少要包含的特殊字符数。
其中关于validate_password_policy-密码强度检查等级:
0/LOW > 只检查长度。
1/MEDIUM > 检查长度、数字、大小写、特殊字符。
2/STRONG > 检查长度、数字、大小写、特殊字符字典文件。
后记
经过一段时间后,发现mysql初始密码原来被记录到了日志文件中
查找日志位置 [root@test /var/lib/mysql]# -ef | : pts/ :: /bin/ /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-=/var/run/mysqld/mysqld.pid --basedir=/usr --user= : pts/ :: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-=/usr/lib64/mysql/plugin --user=mysql --log-error=--pid-=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/ : pts/ :: --/var/lib/mysql]# /var/log/--17T16::.059632Z [Note] A temporary password is generated root@localhost:
原文路径:http://www.cnblogs.com/jonsea/p/5510219.html
转载于:https://blog.51cto.com/as007012/1862244
MySQL5.7.12新密码登录方式及密码策略相关推荐
- 腾讯云Windows/Linux服务器登录方式及密码获取方法
腾讯云服务器操作系统不同登录方式也不同,Windows服务器只能是密码登录,Linux服务器可选密码登录也可以选择SSH密匙登录,腾讯云百科来详细说下腾讯云服务器登录方式及密码查看获取方法: 腾讯云服 ...
- SAP750版本设置免输密码登录方式
采用复杂的密码策略,如: MIN_PASSWORD_DIFFERENCE=8 MIN_PASSWORD_DIGITS=1 MIN_PASSWORD_LENGTH=8 MIN_PASSWORD_LETT ...
- C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。
账号登录系统在很多系统设计时都时必不可少的,今天这个登录系统功能较全,可以注册,登录,找回密码,修改密码,以及在输入密码时会有*将密码掩盖,还有完善地登录选择界面,废话不多,上代码! 目录 1.头文件 ...
- mysql禁止空密码登录_PhpMyadmin空密码登录被禁止登录问题解决办法
PhpMyadmin默认是不允许空密码登录了,这样如果是在服务器上使用它肯定是非常合理的,但是如果我们只是本地环境测试那么有时会觉得麻烦了,那么要如何解决这个问题呢?下面一聚教程小编给各位整理了解决办 ...
- mysql的免密码登录_mysql免密码登录(mysql跳过密码登录)
mysql免密码登录(mysql跳过密码登录) 2020-05-15 13:07:13 共10个回答 1.用系统管理员登陆windows系统.2.停止MySQL的服务.3.运行cmd进入dos命令窗口 ...
- mysql 禁止空密码登录_phpMyAdmin空密码登录被禁止 (参见 允许空密码)
目前在ubuntu下,需要一个方便点的mysql客户端,Mysql Workbench感觉不是特别方便,于是下载了phpMyAdmin(phpMyAdmin-4.7.9-all-languages.z ...
- mysql常见的跳过密码登录方式
1.在my.cf文件[mysqld]添加如下行: skip-grant-tables 重启mysql: 以systemctl启动的直接:systemctl mysqld restart 以/opt/a ...
- vagrant开启Xshell使用密码登录方式
1.登录vagrant 2.vi /etc/ssh/sshd_config 3.把PermitRootLogin yes前面的"#"去掉 4.把PasswordAuthentica ...
- python注册用户名和密码登录_Python_36用户名密码登录注册的例子
def panduan (username,passwd):#验证用户米明码是否存在 with open('G:\liumang.txt','r+',encoding='utf-8')as f: fo ...
最新文章
- 广告片断大收集+穿帮镜头
- GPB编辑部招聘启事 2019 Impact Factor破7;CiteScore破10
- Python Day03
- el表达式 循环_EL表达式+JSTL+Ajax 047
- 山东建筑大学计算机期末试题,2018年山东建筑大学计算机科学与技术学院900计算机专业综合之计算机操作系统考研基础五套测试题...
- c#后的完整cookie
- 商标注册流程与注意事项
- Ubuntu下面安装MySQL shell
- PHP在线教育平台源码 网课小程序源码
- LaTex符号大全(LaTeX_Symbols)
- Live2d vue 插件 将live2d引入vue工程 在网页上添加live2d模型
- cups支持的打印机列表_更完整的CUPS打印机状态原因列表
- SEO优化外包 避坑指南
- 上周热点回顾(8.18-8.24)
- 《嵌入式-STM32开发指南》第三部分 外设篇 - 第4章 超声波测距
- STM32--vs1053 WAV录音实现(保存在SD卡)
- 用c语言解参数积分,C语言求定积分的通用函数
- 【Unity】Obi插件系列(三)—— Collisions
- 自己做的一个c#超大浮点数bigFloat
- 机器学习与R之朴素贝叶斯分类器