Mysql8.0安装教程以及密码问题

mysql8.0简介:

  1. 性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争(”hot spot”热点竞争问题)工作负载。
    在这里插入图片描述

  2. NoSQL:MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。
    在这里插入图片描述

  3. 窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。

  4. 隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。

  5. 降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。

  6. 通用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。

  7. UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。

  8. JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。

  9. 可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。

  10. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。

  11. 安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。

详细更新说明:https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-11.html
官方发布说明:https://blogs.oracle.com/mysql/announcing-general-availability-of-mysql-80
MySQL 8 正式版的新增功能:https://mysqlserverteam.com/whats-new-in-mysql-8-0-generally-available/

Mysql8.0安装:

1:下载Mysql源
[root@localhost ~]# rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2: 安装Mysql8.0
[root@localhost ~]# yum --enablerepo=mysql80-community install mysql-community-server -y

出来以下内容则表示安装成功
在这里插入图片描述

3:启动mysql
[root@localhost ~]# systemctl start mysqld

mysql8.0启动后会生成一个临时密码,我们先用临时密码登录

[root@localhost ~]# awk '/temporary password/ {print $13}' /var/log/mysqld.log
ulq10uCz<oxo
4:登录mysql
[root@localhost ~]# mysql -uroot -p'ulq10uCz<oxo'
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 8
Server version: 8.0.26

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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> 
5:修改临时密码
mysql> alter user 'root'@'localhost' identified by 'Linux112';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

可以看到提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
policy requirements(密码不符合当前策略)
在8.0中首次密码必须强制修改为大写字母+符号+数字形式,并且不少于8位

mysql> alter user 'root'@'localhost' identified by 'Linux@112';
Query OK, 0 rows affected (0.00 sec

接下来我们查看密码策略:

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| 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      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

策略说明
validate_password.length 是密码的最小长度,默认是8,我们把它改成6
输入:set global validate_password.length=6;
validate_password.policy 验证密码的复杂程度,我们把它改成0
输入:set global validate_password.policy=0;
validate_password.check_user_name 用户名检查,用户名和密码不能相同,我们也把它关掉
输入:set global validate_password.check_user_name=off;

再次修改为简单密码

mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.01 sec)

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.check_user_name=off;
Query OK, 0 rows affected (0.00 sec)

可以看到修改成功了

mysql> alter user 'root'@'localhost' identified by 'Linux112';
Query OK, 0 rows affected (0.00 sec)
如不想使用密码也可用以下方式跳过密码:

1:在/etc/my.cnf文件添加skip-grant-tables内容
在这里插入图片描述
2:重启mysql
在这里插入图片描述
3:直接输入mysql即可登录
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Windows上安装MySQL 8.0的步骤: 步骤1:下载MySQL 8.0 首先,您需要从官方MySQL网站上下载MySQL 8.0的安装程序。您可以从以下链接下载MySQL 8.0: https://dev.mysql.com/downloads/mysql/ 选择您的操作系统和位数,然后单击“下载”按钮。 步骤2:安装MySQL 8.0 下载完成后,双击安装程序并按照提示进行安装安装过程中,您需要选择以下内容: a. 安装类型:选择“完整”或“自定义”安装类型。如果您不确定,请选择“完整”安装类型。 b. 配置类型:选择“开发计算机”或“服务器计算机”。如果您只是想在本地计算机上安装MySQL,则选择“开发计算机”。 c. 设置密码:设置一个用于root用户的密码。确保密码足够强,以保护您的数据库。 d. 端口:选择要使用的端口号。默认情况下,MySQL使用3306端口。 e. Windows服务:选择是否要将MySQL配置为Windows服务。如果您不确定,请选择“是”。 f. 其他选项:根据您的需要选择其他选项。 步骤3:启动MySQL 8.0 安装完成后,您需要启动MySQL 8.0。打开命令提示符并输入以下命令: net start mysql 如果您将MySQL配置为Windows服务,则可以通过Windows服务管理器启动MySQL。 步骤4:连接到MySQL 8.0 现在,您可以使用MySQL客户端连接到MySQL 8.0。打开命令提示符并输入以下命令: mysql -u root -p 然后,输入您设置的root用户密码。如果一切正常,您将连接到MySQL数据库并可以开始使用它。 以上是在Windows上安装MySQL 8.0的步骤。安装MySQL 8.0的步骤可能会因操作系统和版本而异。如果您遇到任何问题,请参考MySQL官方文档或在社区中寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值