共计 1985 个字符,预计需要花费 5 分钟才能阅读完成。
MySQL 社区版:开源 免费,不提供技术支持,需要配合开源工具来使用。
mysql 企业版:和社区版本代码一样,通过插件提供额外功能特性,比社区版本增加线程插件,审计插件。等额外的功能特性
mysql cluseter cge 集群商业版。是一个实时开源事务数据库,专为在高吞吐量条件下快速,永久地访问数据而设计。支持,并行分布式查询引擎。自动分区伸缩,内存实时数据库等。
mysql 安装可以用 docker 利用镜像生成容器部署,优点快速,缺点,docker 利用镜像生成容器,容器的稳定性较差。需要利用 k8s 等编排工具进行容器编排。安全性较差。docker 与宿主机共享内核,和文件系统。且需要时常更新官方发布的 cve 漏洞补丁。
mysql8.0 新增特性
1 文档存储使用单个数据库开发 SQL 和 NoSQL 文档应用程序。
2 事务数据字典实现为一组存储在单个 InnoDB 表空间中的 SQL 表。
3 SQL 角色用于授予和拒绝用户组的权限,大大减少了安全工作量。
4 对于更丰富的移动应用程序和国际字符集,默认为 utf8mb4 字符集。
5 MySQL 8.0 中添加了通用表表达式,也称为 WITH 查询。
6 窗口函数可降低代码复杂性并帮助开发人员提高工作效率。
7 隐形索引,可以更好地管理全天候运行的应用程序的软件升级和数据库更改
8 降序索引以消除对结果进行排序的需要并导致性能改进
mysql 二进制安装 linux-generic
根据官方 8.0 参考手册安装地址如下
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
安装前要卸载 mariadb
rpm -qa | grep mairadb
rpm -e –nodes 卸载
第一步下载 选择 8.0 版本 上传到服务器解压
我在解压到 /opt 目录下
tar -Jxvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
首先关闭 selinux 和防火墙。
setenforce 0
systemctl stop firewalld.service
mysql 依赖于 libaio 库文件 要安装 libaio.(不安装初始化的时候会失败,阿里云网易 yum 源速度快,CentOS7 系统默认安装)
yum clean all
rm -rf /etc/yum.repos.d/C*
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
mv CentOS7-Base-163.repo /etc/yum.repos.d/netease.repo
yum makecache
yum install gcc gcc-c++ openssl openssl-devel libaio libaio-devel ncurses ncurses-devel -y
创建 mysql 用户和组,并设置禁止登陆系统
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建一个目录链接
cd /opt/
ln -s /opt/mysql-8.0.12-linux-glibc2.12-x86_64/ mysql
创建数据目录和日志目录
cd /opt
mkdir data
mkdir log
chmod 755 /opt/mysql/log
chmod 755 /opt/mysql/data
配置 my.cnf
[mysqld]
port=3306
datadir=/opt/mysql/data
log-error=/opt/mysql/mysql-err.log
user=mysql
default_authentication_plugin=mysql_native_password
[client]
socket=/tmp/mysql.sock
配置环境变量
echo “export PATH=$PATH:/opt/mysql/bin” >> /etc/profile
source /etc/profile
初始化数据库
/opt/mysql/bin/mysqld –initialize –user=mysql 记住初始化密码
设置启动文件
/opt/mysql/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
更改 basedir = /opt/mysql/
datadir = /opt/mysql/data
更改执行权限 chmod+755 /etc/init.d/mysqld
systemctl restart mysqld 启动服务
或者利用 mysql_safe 启动
mysqld_safe –user=mysql
利用刚才记录的密码登陆数据库,并更改密码
ALTER user ‘root’@’localhost’ IDENTIFIED BY ‘mysql’;
FLUSH PRIVILEGES;
: