MySQL 5.7 的初始化操作(root初始密码、修改密码、密码策略、关闭IPv6监听)

我这里是通过mysql官方的yum源来安装的mysql-community-server ,当前版本是MySQL 5.7.12 。

wget 
rpm -ivh  mysql57-community-release-el6-8.noarch.rpm
yum install mysql-community-server
service mysqld start

第一次启动后会有个初始化的过程,会产生root账户的随机密码。

为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error_log中,关于error_log的位置,如果安装的是RPM包,则默认是 /var/log/mysqld.log 。

找到生成的随机密码

mysql -u root -p‘zXMgg%#L3=;1‘

mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.12

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

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

登陆上过后,进行正常操作会受限,提示你必须修改密码后才能进行操作。

好吧,根据提示修改密码:

mysql> SET PASSWORD = PASSWORD(‘123456‘); 
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> SET PASSWORD = PASSWORD("root");
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

但是提示根据当前密码策略,设置的密码不允许。

查阅官方文档后发现有以下三种密码策略:

Policy Tests Performed
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

当前密码策略默认为1 也就是 MEDIUM

mysql [email protected]:(none)> show VARIABLES like "%password%"
+---------------------------------------+---------+
| Variable_name                         | Value   |
|---------------------------------------+---------|
| default_password_lifetime             | 0       |
| disconnect_on_expired_password        | ON      |
| log_builtin_as_identified_by_password | OFF     |
| mysql_native_password_proxy_users     | OFF     |
| old_passwords                         | 0       |
| report_password                       |         |
| sha256_password_proxy_users           | OFF     |
| 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       |
+---------------------------------------+---------+
13 rows in set
Time: 0.030s

所以你更改密码的策略是 数字 小写字母 大写字母 特殊字符 长度至少8位

更改完密码就可以进行数据库的操作了。

mysql [email protected]:(none)> show DATABASES;
+--------------------+
| Database           |
|--------------------|
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set
Time: 0.009s

接下来修改默认密码策略(当然实际环境是不推荐修改为更低安全策略的)

mysql [email protected]:(none)> set global validate_password_policy = 0;
Query OK, 0 rows affected
Time: 0.003s

现在设置完默认密码策略后,就只有 密码长度限制 了。默认为字符长度至少8位。

其中:

validate_password_number_count指定了密码中数据的长度

validate_password_special_char_count指定了密码中特殊字符的长度

validate_password_mixed_case_count指定了密码中大小字母的长度

这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。

mysql [email protected]:(none)> set global validate_password_length = 3;
Query OK, 0 rows affected
Time: 0.004s

mysql [email protected]:(none)> show VARIABLES  like "validate_password_length"
+--------------------------+---------+
| Variable_name            |   Value |
|--------------------------+---------|
| validate_password_length |       4 |
+--------------------------+---------+
1 row in set
Time: 0.010s

如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。

MySQL 5.7 默认安装了 validate_password 插件。 所以多了以上步骤。

----------------------------------------------------------------------------

通过my.cnf 配置文件设置密码策略的级别

"/etc/my.cnf" 28L, 987C                                                                                                                                                                                       22,1          All
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
validate_password_policy=2

最后一行 validate_password_policy 设置mysql启动的时候密码策略级别。 如果设置为3 ,那么需要指定字典文件。

当然你也可以通过 my.cnf 配置文件关闭 validate_password 插件。

只需要添加一行

validate_password = off

编辑完配置文件后,重启mysqld服务即可生效。

mysql [email protected]:(none)> show VARIABLES  like "validate_password%"
+-----------------+---------+
| Variable_name   | Value   |
|-----------------+---------|
+-----------------+---------+
0 rows in set
Time: 0.008s

关闭validate_password插件后,就没有了validate_password的一些参数变量。

MySQL官方对于 validate_password 插件的使用介绍:

http://dev.mysql.com/doc/refman/5.6/en/validate-password-plugin.html#option_mysqld_validate-password

.

时间: 2024-11-05 21:35:28

MySQL 5.7 的初始化操作(root初始密码、修改密码、密码策略、关闭IPv6监听)的相关文章

mysql用户修改登录密码及开启远程登录

一.修改用户登录密码: mysql> show databases;ERROR 1820 (HY000): You must SET PASSWORD before executing this statementmysql> quitBye[[email protected] ~]# mysqladmin -uroot -p password --修改用户密码Enter password: New password: Confirm new password: [[email protect

网站搭建 - Linux虚拟系统 - 时间设置 - root密码修改 - 建站

先试一下,如果不成的话,就不发表了. 下载织梦: 额,这个先还是不要下了. Linux是Apache + MySQL + PHP的套路,先下载吧,不摆图了,直接摆命令,我的是虚拟机,可能没有那么顺利. 不知道自己的root密码,很是尴尬,记得以前重置过. 操作是这样的:sudo passwd修改账号密码 su root输入刚刚修改的密码 就可以登录了. 进入根目录,新建app(software)文件夹,新建download文件夹. 文件下载放download里面,编译放app下面. 插播一个时间

mysql数据库创建用户、赋权、修改用户密码

创建新用户 create user lisi identified by '123456'; 查看创建结果: 授权 命令格式:grant privilegesCode on dbName.tableName to [email protected] identified by "password"; 命令说明: privilegesCode表示授予的权限类型,常见有: all privileges:所有权限: select:读取权限: delete:删除权限: update:更新权限:

改进xutils下载管理器,使其,在任意地方进行进度更新,以及其他状态监听操作

1.前面在做下载进度监听,尝试过,通过添加 弱引用的View进度条,到对应的集合. 等到要进行更新进度的时候,通过Key 获取对应的VIew来进行更新 进度条.效果是达到了,但是我们如何来监听其他的状态呢,不好监听. 2.又想过通过每个 下载APP,都有一个对应的List<DownloadListem> 对象,然后我们将进度监听,都添加进去,待更新进度的时候, for循环来进行. 但是这样要考虑,activity onResume onPase的时候,不需要更新界面.麻烦事情. 3.最后,方法

mysql 5.5.39 基础操作01

1.mysql版本应该怎么选择 由于5.5-5.6对mysql性能做了较大优化,所以一般选择mysql 5.5 或者 5.6 mysql 5.5.xx -5.6.xx 产品的特殊性,所以编译方式也和早期的产品安装方式不同,采用cmake或者gmake方式进行编译安装.即 ./cmake ; make ; make install ,生产场景的具体命令及参数为详见mysql 一键安装脚本 一键安装脚本下载链接 http://down.51cto.com/data/2228998 2.设置mysql

MySQL与SQL语句的操作

MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_schema,performance_schema 特殊的数据表:包含着数据库的信息与设置 2. MySQL基本操作 连接:mysql -u username -h [ip] -p [password] 增加用户: 新增mysql用户:如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 u

修改MySQL 5.7.9版本的root密码方法以及一些新变化整理

MySQL 5.7版本开始,增强密码验证机制,网上说安装的时候会在/root/.mysql_secret  文件中生成默认密码,这一点自 5.7.6版本以后也去掉了. 针对如果生成默认密码,网上有一个版本,内容如下: 1.修改配置文件,一般在 /etc/my.cnf, 在[mysqld]字段下增加skip-grant-tables 字段,用以忽略权限验证: 2.重启MySQL服务器,CentOS 7.0操作命令是: 1 systemctl restart mysqld.service 3.使用m

mysql学习笔记一:操作数据库

创建数据库是指在数据库空间中划出一块空间用来存储相关的数据,表就是存储在对应的数据库里面.首先来看下查看数据库的命令:show databases. 这个是用来查询数据库空间下所有的数据库,其中information_schedma/mysql/performace_schema是用来存储管理或者用户账号的数据库.目前还没有我们自己建立的数据库 mysql> show databases; +--------------------+ | Database           | +------

管理员 修改MySQL 5.7.9 新版本的root密码方法以及一些新变化整理

MySQL 5.7版本开始,增强密码验证机制,网上说安装的时候会在/root/.mysql_secret  文件中生成默认密码,这一点自 5.7.6版本以后也去掉了. 针对如果生成默认密码,网上有一个版本,内容如下: 1.修改配置文件,一般在 /etc/my.cnf, 在[mysqld]字段下增加skip-grant-tables 字段,用以忽略权限验证: 2.重启MySQL服务器,CentOS 7.0操作命令是: systemctl restart mysqld.service 3.使用mys