mysql5.7密码设置

mysql5.7版本引入了强制更改密码的举措,只能吐槽一句,shit!mysql5.7安装
安装完mysql之后,mysql已经随机指定了一个初始化密码,可以在mysql的错误日志中找到初始化密码:

cat /var/log/mysqld.log  | grep password
2018-07-05T05:02:46.258821Z 0 [ERROR] unknown variable ‘validate_password_policy=0‘
2018-07-05T05:05:04.538912Z 1 [Note] A temporary password is generated for [email protected]: 9kkYpe)x>>2V
2018-07-05T05:05:09.218798Z 2 [Note] Access denied for user ‘UNKNOWN_MYSQL_USER‘@‘localhost‘ (using password: NO)

根据临时密码进入mysql的交互界面,进行任何操作都会报如下错误提示:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

进入之后随便执行一条语句,会发现系统提示你必须使用alter user语句更改密码,(oracle为了数据库的安全真是操碎了心)
在试了n次密码之后,仍然报如下错误
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
命运多舛,时运不济啊!
mysql> alter user "root"@"localhost" identified by "123qwE#!";  #密码含有 数字,大写字母,小写字母,特殊字符
Query OK, 0 rows affected (0.01 sec)

mysql>

但有时候我们临时测试的时候不需要这么复杂的密码,这时候可以看如下设置。

若想快速的使用mysql 简单的 密码请按如下设置,直接在交互行执行:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> set password=password("123456");
Query OK, 0 rows affected, 1 warning (0.01 sec)

这样就可以正常使用账户和密码了。

详解了解一下这几个参数

查看控制密码设置的几个参数
mysql> show variables like "validate_password%";
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

密码安全策略:validate_password_policy
策略              检查规则
0 or LOW            Length
1 or MEDIUM         Length; numeric, lowercase/uppercase, and special characters
2 or STRONG         Length; numeric, lowercase/uppercase, and special characters; dictionary file

validate_password_dictionary_file:    密码策略文件,需要安全策略参数为strong或2.
validate_password_length:             密码长度, 默认是8
validate_password_mixed_case_count:   密码中大小写字母数量至少为1
validate_password_number_count:       密码中数字的数量至少为1
validate_password_special_char_count: 密码中特殊字符的个数至少为1
validate_password_check_user_nam:     检查用户名 

修改策略的时候,可以直接用set global varname参数修改。

需要注意的是:

但是若在错误日志中找不到初始化密码,就得不走寻常路了使用skip-grant-tables参数。
只说明方法,不会具体操作:
在配置文件中加入skip-grant-tables参数,然后重新启动mysql服务,这时候不需要密码即可进入交互界面。
然后 执行 update mysql.user set authentication_string=password(‘123456‘) where user=‘root‘;(需要注意的是:mysql57版本中user表的password字段已经更新为authentication_string字段。)语句更改root用户密码,其余的set语句好像不能执行。

更改成功之后,注释掉配置文件中的skip-grant-tables参数,重新启动mysql,然后就可以使用密码进入交互界面。

原文地址:https://www.cnblogs.com/wxzhe/p/9594543.html

时间: 2024-11-13 08:04:14

mysql5.7密码设置的相关文章

MYSQL5.7.17设置初始密码(转)

MYSQL5.7.17设置初始密码与之前版本设置密码有较大不同: 首先使用CMD的管理员权限 进入到 MySQL的安装目录,安装版进入安装目录,免安装版进入解压目录 进入mysql安装目录:D:\wamp\bin\mysql\mysql5.1.53输入 mysqld -install进行安装服务初始化  mysqld -initialize       (移除服务mysqld -remove)第一次安装时这一句不要写, net start mysql    开启服务 mysql -uroot -

MySQL5.7 密码安全策略

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通过log_error设置 mysql> select @@log_error; +---------------------+ | @@log_error | +---------------------+ | /var/log/mysqld.log | +---------------------

mysql5.7密码登录的那些坑

mysql5.7密码策略及修改技巧 繁著 关注 2017.08.18 22:41* 字数 522 阅读 10184评论 0喜欢 4 mysql升级5.7版本以后,安全性大幅度上升. MySQL5.7为root用户随机生成了一个密码,打印在error_log中,关于error_log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log .于是我们可以在mysqld.log中找到初始密码串: cat /var/log/mysqld.log | grep password 用

路由器密码设置之一

首先,路由器的密码设置有5种情况,分别是,控制台密码.辅助端口密码.远程登录(VTY)密码.启用密码.启用加密密码 (1)启用密码 Router(config)#enable password cisco (2)启用加密密码 Router(config)#enable secret password cisco (3)远程登录(VTY)密码 Router(config)#line vty ? <0-15>  First Line number Router(config)#line vty 0

mysql密码设置及重置方法

mysql密码设置及重置方法 作者 :小刘 今天这篇文章,我们来看下mysql数据库的密码设置,当我们不小心忘记了root密码,是一件很糟糕的事情,希望此文章可以帮助大家,我们先从设置密码开始吧!我们刚安装好的mysql数据库,默认root的密码为空,这时我们可以用一下命令设置密码mysqladmin -u root password "密码"如图(为root设置密码为123456)  如果你知道原来的旧密码,我们就可以用下面的命令直接更改就可以了mysqladmin -u root

mysql5.7密码过期ERROR 1862 (HY000): Your password has expired. To log in you must change

环境: ubuntu14.04  mysql5.7 一.mysql5.7 密码过期问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords. 翻译: 错误1862(HY000):你的密码已经过期.登录必须改变它使用一个客户端,支持过期的密码. 解决方法: 1. 用忽略授权表的方法进入mysql  

Ubuntu 默认root 登录密码设置

Ubuntu的 默认root密码是随机的,即每次开机都有一个新的root密码. 要先用其他用户修改 root 密码 主要命令 passwd 使用 :su passwd root 输入2次密码即可 Ubuntu 默认root 登录密码设置,布布扣,bubuko.com

自学总结redis第一部分(简介、虚拟机配置、安装、配置、连接方式、密码设置)

Redis学习部分 一.NoSql简介 NoSql泛指非关系型数据库. 更多简介请见 "http://baike.baidu.com/link?url=sYV3qpYWs3RDlz1RZbVP18luQwubYrboLUt2qRDhSJrhctvLL1tYBtDFf736ypSocpnmZE5eLvyYzd34k5T2xa" 1.1NoSql数据库的四大分类 键值(key-value)存储数据库:这一类数据库主要会使用一个哈希表,这个表中有一个特定的键和一个指针执行特定的数据.Key/

mac下mysql5.6字符集设置

http://geeksblog.cc/2016/05/28/mac-mysql-unicode/ mac下mysql5.6字符集设置: 在mac下设置mysql5.6字符集时踩过的坑,百分百保证有效 为什么要设置字符集 设置字符集主要是解决乱码问题,由于中文和英文编码不同导致,中文出现乱码,所以一般都设置为utf8格式 不同的字符集和编码占用的字节不同,选择适合的编码会提高数据库性能 mac下设置 在/etc/my.cnf文件进行设置,如果没有此文件可以从/usr/local/mysql/su