本文详细介绍MySQL5.7的三种安装方式(二进制,yum,源码编译)的特点、优劣。并以操作系统为CentOS 7为例,图解每一种安装方式的详细过程。
一、MySQL server三种安装方式对比
二、MySQL 版本选择
- 稳定版:选择开源社区版的稳定版(GA版本)
- 选择MySQL数据库GA版发布后6个月以上的GA版本
- 选择前后几个月没有大的BUG修复的版本,而不是大量BUG修复后的集中版本
- 最好向后较长时间没有更新发布的版本
- 如果和云平台混合使用,最好选择5.6,目前大部分云厂商提供的MySQL都是5.6版本。
- 如果是自建,并且以后都想自己运维数据库,建议使用5.7,5.7在性能和数据同步方面做了很大的改进,特别是并行复制和多源复制。
三、RPM安装MySQL5.7
操作系统默认包含的MySQL源比较老旧,如果需要安装MySQL5.7,则需要从MySQL网站(https://dev.mysql.com/downloads/mysql/)下载相应的repo。
3.1. RPM包简介
RPM包 | 简介 |
---|---|
mysql-community-server | 数据库服务端与相关工具 |
mysql-community-client | MySQL客户端 |
mysql-community-common | 服务端和客户端常用库文件 |
mysql-community-devel | 客户端开发用的头文件及库 |
mysql-community-libs | MySQL数据库客户端共享库 |
mysql-community-libs-compat | 兼容老版本的共享库 |
mysql-community-embedded | MySQL嵌入式版本 |
mysql-commercial-embedded-devel | 嵌入式版本的头文件与库 |
mysql-community-test | MySQL测试套件 |
3.2. 安装过程
yum install libaio
到下载页面https://dev.mysql.com/downloads/repo/yum/ 下载repo
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
使用命令查看系统安装的mysql repo:
yum repolist all | grep mysql
激活MySQL5.7命令:
yum -y install yum-utils
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql56-community
yum-config-manager --disable mysql55-community
rpm -qa | grep mariadb
yum remove mariadb-libs
yum install mysql-community-server ysql-community-client
service mysqld start
grep tempo /var/log/mysqld.log
使用命令安装设置mysql_secure_installation,可以对初始化数据库root用户密码。由于MySQL5.7默认安装了安全组件,所以新设置密码必须:长度大于8;包含至少1个数字,1个大写字母,1个小写字母,1特殊符号;长度不能超过32位
mysql -u root -p
11). 设置开机自启动
systemctl enable mysqld.service
四、二进制安装MySQL5.7
二进制安装MySQL无需编译,但是确很灵活,能够在一台机器上实现多个MySQL数据库,是很多DBA的所爱。其安装步骤如下:
yum install libaio
到下载页面https://dev.mysql.com/downloads/mysql/ 选择下载MySQL5.7的Linux Generic版本。如下图:
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
groupadd mysql
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql
mkdir /opt/mysql
cd /opt/mysql
tar zxvf /绝对路径/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
cd /usr/local/
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql mysql
下载MySQL配置文件,并上传到服务器/etc下链接: https://pan.baidu.com/s/1gfs3GCr 密码: bv6a
mkdir /data/mysql/mysql3306/{data,logs,tmp} -p
chown -R mysql:mysql /data/mysql/
cd /usr/local/mysql
./bin/mysqld --defaults-file=/etc/my.cnf --initialize
cp support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start
grep "temporary password" /data/mysql/mysql3306/data/error.log
cd /usr/local/mysql
./bin/mysql_secure_installation
五、源码编译MySQL5.7
MySQL5.7的源码编译比较复杂,为了降低编译的复杂度,邦邦把相关的编译指令写成交脚本,用户只需要下载脚本,直接运行即可完成编译安装,具体步骤如下:安装包下载地址: https://pan.baidu.com/s/1jHAzaCI 密码: 4p2b安装包内容如下图:
- 以用户root登陆到服务区器
- 创建目录soft
- 安装软件lrzsz(yum install lrzsz),如果装有ftp上传软件,请忽略
- 上传下载下来的安装包mysqlautoinstall.5.7.tar.gz到目录/root/soft
- 进入soft目录,解压安装包:tar zxf mysqlautoinstall.5.7.tar.gz
- 进入安装包mysqlautoinstall.5.7: cd mysqlautoinstall.5.7
rpm -qa | grep mariadb
yum remove mariadb-libs
rm /etc/my.cnf
MySQL5.7的编译安装配置文件为mysql.cnf。对于大多数用户来来说,只需要修改mysql.cnf中的监听端口和绑定网卡,如下图:
- 编译MySQL5.7为主库模式
./mysqlAutoInstall.sh -t master -f master.cnf
- 编译MySQL5.7为从库模式
./mysqlAutoInstall.sh -t slave -f slave.cnf
/etc/init.d/mysql端口 start
更多内容请关注公众号