
MySQL教程(1)MySQL 版本介绍与安装部署
一、MySQL 主要发行版
由于MySQL是一款免费开源的数据库软件,随着开源许可、商业需求、性能优化和功能扩展的差异,诞生了许多不同的发行版,以下是一些主流发行版的介绍
· Oracle MySQL:官方正统版本,MySQL被Oracle收购后就分为了社区版和企业版,社区版可免费使用,是目前使用最多的发行版。产品迭代速度很快,几乎每三个月就会发行一个小版本。该发行版使用MGR实现集群。
· Percona:在MySQL官方社区版的基础上做了性能优化,是最接近MySQL企业版的发行版,提供了一些MySQL管理工具。由于其属于二次开发,在版本上可能会稍落后官方版。该发行版使用MGR或PXC实现集群。
· MariaDB:MySQL原作者在MySQL被收购后所开发的新的发行版,基本兼容MySQL,也存在版本稍微落后的问题。该发行版使用Galera Cluster实现集群。
· PolarDB、TDSQL:基于 MySQL 的云原生数据库,主要是一些云厂商为了适配自身基础设施、提供差异化服务所开发。
二、MySQL 主要版本
mysql5.5 | mysql5.6 | mysql5.7 | mysql8.0 | |
索引 | 全局读写锁,并发一般 | 全局读写锁,并发一般 | 锁优化,并发性能提升 | 进一步锁优化 |
数据一致性 | 半同步 | 半同步 | 无损复制 | 支持组复制 |
多线程复制 | 不支持 | 基于库的多线程复制 | 基于组提交的多线程复制 | 基于事务的并行复制 |
事务组提交 | 不支持 | 支持 | 支持 | 优化二进制日志组提交 |
半结构化数据 | BLOB | BLOB | JSON | 增强JSON支持 |
截止2024年12月,使用率最多的是MySQL 5.7版本,而8.0版本则是未来的趋势,可自行选择
三、MySQL 安装部署
MySQL 支持编译安装、二进制安装、YUM安装等多种安装方式,可以灵活选择,不同的安装方式各有优缺点,适用于不同的场景。RPM包通常命名为 mysql57-community-release-el7-9.noarch.rpm(如果是bundle包表示将 MySQL 所有包整合在了一起);二进制包归类为Generic类别下,包名通常为mysql-5.7.16-linux-glibc2.5-x86_64.tar;源码包归类为Source分类,包名通常为mysql-5.7.16.tar.gz
1、二进制安装(推荐方法)
这是最常用、最推荐的MySQL数据库安装方式,只需要下载二进制包以后并配置好参数文件就可以直接完成数据库的安装,非常灵活
· 下载合适的安装包
在选择 MySQL 二进制安装包时,需要注意分为了不同的glibc版本,如glibc 2.17 与 glibc 2.28 。它们的区别在于所使用的操作系统版本。通常glibc 2.17 适用于CentOS 7,glibc 2.28 则是CentOS 8 以及更高版本。通过下面的命令可查看操作系统的glibc版本
ldd --version
· 创建用户组
创建MySQL用户和组,并将通用二进制安装包解压到需要的路径下
useradd -r -s /sbin/nologin -M mysqlcd /usr/local/tar zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz ln -s mysql-5.7.16-linux-glibc2.5-x86_64 mysql
· 创建数据库目录
创建用于存放MySQL数据和日志的目录,并可将目录属主修改为MySQL用户
mkdir /mysql/{data,log}chown -R mysql.mysql /mysql
· 创建MySQL配置文件
配置文件可以通过复制support-files/my-default.cnf作为模板,但是生产环境是远远不够的,本站提供了一个详细的配置模板可直接使用
#将初始化参数写在配置文件中,读取配置文件进行初始化(初始化失败的话通常和配置参数错误有关系) vi /etc/my3306.cnf [mysqld] basedir = /usr/local/mysql datadir = /mysql/data log-error = /mysql/log/error.log character-set-server = utf8 socket = /tmp/mysql.sock [client] socket = /tmp/mysql.sock
· 初始化MySQL
MySQL 5.7开始使用bin/mysqld脚本进行初始化(5.7之前是bin/mysql_install_db)。初始化完成后在DATADIR下会创建MySQL的4个默认数据库和相关文件。要重新初始化的话需要先停止服务并删掉数据目录下的所有文件才可以。如果初始化失败可以查看错误日志检查原因,在没配置错误日志时,错误日志默认会在databasedir以主机名为名,如server1.err。如果发现启动后参数和配置的my.cnf存在差异,需要检查下是否在其它路径存在my.cnf覆盖了/etc/my.cnf的配置
#运行初始化命令指定配置文件路径,该选项必须放在第一个参数中,如果不写的话MySQL会按照几个默认路径按顺序寻找my.cnf这样命名的配置文件 #初始化时生成随机密码 mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql #初始化时不生成随机密码 # mysqld --defaults-file=/etc/my3306.cnf --initialize-insecure --user=mysql
· 正确启停MySQL服务
安装完成后使用mysqld_safe脚本来启动服务,相比使用mysqld启动它会多运行一个监控进程,当mysql服务异常退出时会自动拉起。如果要停止服务的话则是使用mysqladmin的shutdown功能
#指定配置文件启动服务 /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf & #关闭服务 mysqladmin -uroot -p123456 -S /tmp/mysql.sock shutdown
· 修改默认密码
在错误日志中记录了root的临时密码(在5.6版本是空密码),使用该密码运行bin/mysql_secure_installation脚本可以进行一些安全相关配置,或者登陆到MySQL后修改root的密码,否则无法进行其他操作。
alter user root@'localhost' identified by 'Newp@ssword'
注意:如初始化完成后使用临时密码提示Your password has expired密码过期,是因为系统自带的mysql命令行工具与当前安装的MySQL版本不一致,使用绝对路径即可。
2、编译安装 MySQL
· 安装cmake
MySQL通过cmake工具进行编译安装,所以首先要通过yum来安装cmake工具
yum -y install ncurses ncurses-devel cmake gcc gcc-c++ openssl-devel bison cmake
· 编译安装
进入MySQL源码包目录后使用cmake命令即可直接开始编译安装。但是通常情况下还需要使用-D选项自定义参数,比如指定安装路径等,cmake支持的参数和具体作用可以参考官方文档(http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html)。编译过程中如果遇到 remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel,需要先安装ncurses-devel,安装好了后删除CMakeCache.txt再重新执行编译
# cmake . 按照默认配置安装 cmake . \-DDOWNLOAD_BOOST=1 或者 -DWITH_BOOST=/usr/local/boost -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DSYSCONFDIR=/etc \ -DMYSQL_DATADIR=/mysql_data \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DEXTRA_CHARSETS=all make && make install
· 创建配置文件和脚本
安装完成后会在安装路径生成一系列脚本和配置文件,support-files目录提供了配置文件和启动脚本的模板
cp mysql.server /etc/init.d/mysqld
cp my-default.cnf /etc/my.cnf
· 数据库初始化
初始化完成后会生成默认库表,如果初始化失败,可在错误日志中查看相关原因
mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql
· 启动服务
systemctl start mysql
3、YUM安装MySQL
在官方选择Red Hat Enterprise Linux / Oracle Linux时可以看到一个Yum Repository的下载链接,通过该链接可以下载YUM仓库的安装包,然后就可以通过包管理工具快速安装数据库。该方法通常只用于快速安装一个数据库进行测试,不推荐用于生产环境。
猜你喜欢

PostgreSQL PostgreSQL教程(1)PGSQL的体系、结构与安装部署
一、PostgreSQL 特性PostgreSQL简称PGSQL,作为目前最火爆的企业级关系型数据库,主要优点如下: · 开源免费,国产数据库90%基于PostgreSQL进行二...
MySQL MySQL教程(2)MySQL 生产环境配置文件模板及参数详解

一、MySQL配置文件路径规则MySQL对于配置文件有一个顺序规则,它是按照/etc/my.cnf > /etc/mysql/my.cnf > /usr/local/mysql/etc/m...
文章评论