MySQL5.7 三种安装方式及详解

本贴最后更新于 2289 天前,其中的信息可能已经物是人非

本文详细介绍 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。

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 测试套件

2. 安装过程

1. 安装依赖

yum install libaio

2. 下载 MySQL 5.7 yum repo
到下载页面 https://dev.mysql.com/downloads/repo/yum/ 下载 repo

wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm

3. 安装 MySQL yum repo

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

4. 激活 MySQL57 版本
使用命令查看系统安装的 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

5. 卸载 mariadb

rpm -qa | grep mariadb
yum remove mariadb-libs

6. 安装 MySQL 5.7

yum install mysql-community-server mysql-community-client

7. 启动 MySQL

service mysqld start

8. 获取 MySQL root 用户密码

grep tempo /var/log/mysqld.log

9. 修改 MySQL root 用户密码
使用命令安装设置 mysql_secure_installation,可以对初始化数据库 root 用户密码。由于 MySQL5.7 默认安装了安全组件,所以新设置密码必须:长度大于 8;包含至少 1 个数字,1 个大写字母,1 个小写字母,1 个非字符数字的符号;长度不能超过 32 位

10. 使用新密码登录 mysql

mysql -u root -p

**11. 设置开机自启动 **

systemctl enable mysqld.service

二进制安装 MySQL5.7

二进制安装 MySQL 无需编译,但是确很灵活,能够在一台机器上实现多个 MySQL 数据库,是很多 DBA 的所爱。其安装步骤如下:
1.安装依赖包

yum install libaio

2. 下载二进制文件
到下载页面 https://dev.mysql.com/downloads/mysql/ 选择下载 MySQL5.7 的 Linux Generic 版本。如下图:

3. 使用命令下载(可选)

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

4. 添加 MySQL 用户及用户组

groupadd mysql
useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql

5. 安装 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

6. 下载 MySQL 配置文件
下载 MySQL 配置文件,并上传到服务器/etc 下
链接: https://pan.baidu.com/s/1gfs3GCr 密码: bv6a

7. 创建数据库相关目录

mkdir /data/mysql/mysql3306/{data,logs,tmp} -p
chown -R mysql:mysql /data/mysql/

8. 初始化 MySQL

 cd /usr/local/mysql
./bin/mysqld --defaults-file=/etc/my.cnf --initialize

9. 启动 MySQL

cp support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start

10. 获取初始化密码

grep "temporary password" /data/mysql/mysql3306/data/error.log

11. 修改 root 密码

cd /usr/local/mysql
./bin/mysql_secure_installation

源码编译 MySQL5.7

MySQL5.7 的源码编译比较复杂,为了降低编译的复杂度,邦邦把相关的编译指令写成交脚本,用户只需要下载脚本,直接运行即可完成编译安装,具体步骤如下:
1. 下载安装包
安装包下载地址: https://pan.baidu.com/s/1jHAzaCI 密码: 4p2b
安装包内容如下图:

2. 登录服务器并创建编译目录

  • 以用户 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

3. 卸载 mariadb

rpm -qa | grep mariadb
yum remove mariadb-libs
rm /etc/my.cnf

4. 修改编译配置项
MySQL5.7 的编译安装配置文件为 mysql.cnf。对于大多数用户来来说,只需要修改 mysql.cnf 中的监听端口和绑定网卡,如下图:

5. 运行编译脚本

  • 编译 MySQL5.7 为主库模式
./mysqlAutoInstall.sh -t master -f master.cnf
  • 编译 MySQL5.7 为从库模式
 ./mysqlAutoInstall.sh -t slave -f slave.cnf

6. 启动 MySQL

/etc/init.d/mysql端口 start

更多内容请关注公众号

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    690 引用 • 535 回帖
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • alanfans

    rpm:
    6.安装 MySQL 5.7
    shell 少了个字母

    1 回复
  • someone4686

    哪那么多讲究……我都是下载 zip 包然后解压直接运行,配置文件都懒得写,直接在运行命令上加参数。

    1 回复
  • bangbang
    作者

    谢谢指正,已经修改。

  • bangbang
    作者

    一重启岂不是悲剧,要重新设置一遍参数,难道有高招?求指教

    1 回复
  • someone4686 1

    命令还是可以记在批处理文件里面嘛。这样做的好处是数据库程序保持原样,并可以同时运行多份,使用不同的端口和不同的存储目录。