(编辑:jimmy 日期: 2024/12/25 浏览:2)
上篇文章给大家介绍了MySQL 8.0.23 主要更新一览(新特征解读) ,感兴趣的朋友点击查看吧!
最新版windows mysql-8.0.23-winx64,点击下载
mysql8.0.23 linux(centos7)安装教程(附:配置外网连接用户授权 与 不区分大小写配置)
(博主在这里叨叨几句,稍后进入正题。在使用开发过程中,有时候数据库结合使用,会成倍提高程序效率)
常见的关系型数据库:
(其实博主也只使用过 MySQL Oracle sqlServer)
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL
关系型数据库的特点:
安全(因为存储在磁盘中,不会说突然断电数据就没有了)、容易理解(建立在关系模型上)、但不节省空间(因为建立在关系模型上,就要遵循某些规则,好比数据中某字段值即使为空仍要分配空间)
列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,数据即索引,IO很快,主要是一些分布式数据库)
键值对模型:存储的数据是一个个“键值对”,比如name:liming,那么name这个键里面存的值就是liming
文档类模型:以一个个文档来存储数据,有点类似“键值对”。
博主本机未安装其它非关系型数据库(此处就不一 一截图啦~)
效率高(因为存储在内存中)、但不安全(断电丢失数据,但其中redis可以同步数据到磁盘中),现在很多非关系型数据库都开始支持转存到磁盘中。
相关文献地址
https://dev.mysql.com/doc/
mysql server 文献页
https://dev.mysql.com/doc/refman/8.0/en/
性能提升级。官方表示MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在读/写工作负载、IO 密集型工作负载、以及高竞争工作负载时相比MySQL5.7有更好的性能
(阿里云的图片 )
2、更强的NoSQL文档支持。MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。
(阿里云的图片 )
窗口函数。也就是在满足某种条件的记录集合上执行的特殊函数。它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而 是将结果放回多行当中。即窗口函数不需要 GROUP BY。窗口函数的使用,将大大提高相关的分析型场景的效率。
UTF-8编码。从MySQL8.0开始,使用utf8mb4 作来MySQL的默认字符集,并支持 Unicode 9,默认字符集将从 latin1 改为 utf8mb4,默认定序collation将从latin1_swedish_ci 改为 utf8mb4_800_ci_ai;
隐藏索引。可以将索引通过命令设置为 隐藏 或 显示。对于被 隐藏 的索引,它不会被查询优化器所使用,我们可以使用这一功能,对相关的查询进行性能调试,通过 隐藏 或 显示,分析数据库性能差异的原因,同时也可以去除无效的索引。
隐藏一个索引:
ALTER TABLE TABLENAME ALTER INDEX IDXNAME INVISIBLE;
恢复显示该索引
ALTER TABLE TABLENAME ALTER INDEX IDXNAME VISIBLE;
持久化设置。MySQL8.0 新增 SET PERSIST 的命令,该命令的配置值保存到数据目录下的mysqld-auto.cnf文件中,待重启后,读取该文件,用其中的配置覆盖缺省的配置文件,补充了SET GLOBAL 命令只能临时生效的不足;
命令的使下如:
恢复显示该索引
SET PERSIST max_connections = 400;
重构 BLOB。重构 BLOB 加速了片段读取/更新操作,可以加速 JSON 数据的操作。大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。
事务性数据字典。完全脱离了 MyISAM 存储引擎,真正将数据字典放到了 InnoDB 中的一些表中,不再需要 FRM、TRG、PAR 等文件;Information Schema 现在以数据字典表的一个视图出现。也就是原则上可以不需要 MyISAM 数据表类型,系统表都可以放到 InnoDB 之中。
SQL 角色。可以创建角色,给用户设置或去除角色,大大方便权限的管理。
其实还有很多相关特性,这里只是挑了些个人觉得比较重要的,要了解更多的信息,可以通过上述的文档链接查看。
官网地址
https://www.mysql.com/
(随着版本更新官网下载位置的入口可能会改变)
下载mysql二进制文件,匹配自己的linux版本
第二步 上传文件到指定文件夹下并解压
cd /opt/mysql tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.23-linux-glibc2.12-x86_64 mysql-8.0.23 # 解压出来的文件夹名称较长,此处我们可以稍做修改
第三步 创建用户组以及用户和密码 并授权
创建用户组以及用户和密码 groupadd mysql useradd -g mysql mysql
授权用户 (如:下列配置my.cnf 时指定的目录都需给mysql 用户授权) chown -R mysql.mysql /opt/mysql/mysql-8.0.23
第四步 初始化基础信息 (切记切记 设置不区分大小写得在初始化时设置)
创建 data 数据存储目录 mkdir data 切换到bin 目录下 cd bin 初始化基础信息 切记切记切记mysql8 一定要在初始化时设置 不区分大小写,不然后续修改和删除重装没区别 初始化后在原始my.con 下lower_case_table_names = 1 是无效的,所以一定要在初始化时加上 --lower-case-table-names=1 ./mysqld --user=mysql --basedir=/opt/mysql/mysql-8.0.23 --datadir=/opt/mysql/mysql-8.0.23/data/ --initialize --lower-case-table-names=1
得到系统初始化随机默认密码,此处得记录下密码,后续操作需要(敲黑板)
第五步 编辑my.cnf文件
my.cnf 还有很多可设置属性,详情请查看官方文档,此处仅设置主要参数
配置my.cnf 的文件路径 文件夹必须存在(不存在文件时,启动会提示文件不存在)
#设置mysql的安装目录 basedir=/opt/mysql/mysql-8.0.23 #设置mysql数据库的数据的存放目录 datadir=/opt/mysql/mysql-8.0.23/data #设置客户端默认字符集 character-set-server=UTF8MB4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #设置是否区分大小写(初始化后此参数在这里也必须存在) lower_case_table_names=1 # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password #注释mysqld_safe 下的所有配置 系统会输出到 datadir目录下 #[mysqld_safe] #log-error=/var/log/mysqld.log #pid-file=/var/run/mysqld/mysqld.pid
第六步 添加mysqld服务到系统 授权以及添加服务
进入主目录 cd /opt/mysql/mysql-8.0.23 添加mysqld服务到系统 cp -a ./support-files/mysql.server /etc/init.d/mysql 授权以及添加服务 chmod +x /etc/init.d/mysql chkconfig --add mysql
第七步 启动服务 建立服务同步连接
service mysql start #服务启动 service mysql status #查看服务状态 service mysql stop #停止服务 service mysql restart #重启服务
当个别小伙伴启动服务的时候可能会提示文件夹没有权限 ,日志在 datadir 下可查看 设置mysql 权限即可
如:
chown -R mysql:mysql /opt/mysql/mysql-8.0.23/data
建立服务同步连接(不明白 ln -s 的小伙伴可以百度查询一下该命令的作用 )
ln -s /opt/mysql/mysql-8.0.23/bin/mysql /usr/bin
第八步 登录mysql 并修改密码
#进入mysql 控台 mysql mysql -uroot -p #修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; #刷新权限 flush privileges;
第九步 配置外网连接授权
#选择mysql数据库 use mysql; #修改root 用户的连接地址现在 localhost 为本机 也可指定固定ip 此处 % 开启所有ip访问 update user set host='%' where user='root'; #刷新权限 flush privileges;
最后一步 退出控台 外网远程连接测试 (安装完毕)
exit;