安装MySQL 5.7.13

一、简介:

MySQL 5.7主要特性:

1、原生支持Systemd

2、更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化

3、更好的lnnoDB存储引擎

4、更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库

5、MySQL-5.6.3以上版本已经支持了多线程的主从复制

6、新增sys库:以后这会是DBA访问最平凡的库

二、安装MySQL 5.7.13

系统环境:Centos 7.2x86_64

1、安装前准备:

因为Centos 7.2默认安装了mariadb-libs,所以要先卸载掉

[root@localhost ~]# rpm -aq | grep mariadb

mariadb-libs-5.5.44-2.el7.centos.x86_64

[root@localhost ~]# rpm -e mariadb-libs --nodeps

2、安装相关依赖包

准备以下安装包

bison-3.0.4.tar.gz         cmake-3.5.2.tar.gz        mysql-5.7.13.tar.gz

boost_1_59_0.tar.gz        ncurses-5.9.tar.gz

注:相关依赖包的作用

# cmake:由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要cmake编译器,用于设置mysql的编译参数。(如:安装目录,数据存放目录,字符编码,排序规则等)

# boost:从MySQL5.7.5开始Boost库是必需的,mysql源码中用到了C++Boost库,要求必需安装Boost1.59.0或以上版本。

# GCC:这是Linux下的C语言编译工具,MySQL源码编译完全由CC++编写,要求必需安装GCC

# bisonLinuxC/C++语法分析器。

# ncurses:字符终端处理库。

1)安装cmake

[root@localhost ~]# tar zxf cmake-3.5.2.tar.gz

[root@localhost ~]# cd cmake-3.5.2/

[root@localhost cmake-3.5.2]# ./bootstrap

[root@localhost cmake-3.5.2]# gmake && gmake install

2)查看cmake版本:

wKiom1i5jJeRuTo-AAAbOLB494Y945.png 

3)安装ncurses

[root@localhost ~]# tar zxf ncurses-5.9.tar.gz

[root@localhost ~]# cd ncurses-5.9/

[root@localhost ncurses-5.9]# ./configure && make && make install

4)安装bison

[root@localhost ~]# tar zxf bison-3.0.4.tar.gz

[root@localhost ~]# cd bison-3.0.4/

[root@localhost bison-3.0.4]# ./configure && make && make install

5)安装boost

[root@localhost ~]# tar zxf boost_1_59_0.tar.gz

[root@localhost ~]# mv boost_1_59_0 /usr/local/boost

6)创建mysql用户和用户组及目录

[root@localhost ~]# groupadd -r mysql

[root@localhost ~]# useradd -r -g mysql -s /bin/false -M mysql

[root@localhost ~]# mkdir -p /usr/local/mysql/data

3、编译安装MySQL

解压mysql源码包

[root@localhost ~]# tar zxf mysql-5.7.13.tar.gz

[root@localhost ~]# cd mysql-5.7.13/

执行cmake命令进行编译前配置

[root@localhost mysql-5.7.13]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/usr/local/boost

<-- -->:配置解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql          ## MySQL安装根目录

-DMYSQL_DATADIR=/usr/local/mysql/data            ## MySQL数据库文件存放目录

-DSYSCONFDIR=/etc                                ## MySQL配置文件所在目录

-DDEFAULT_CHARSET=utf8                           ## 设置Mysql默认字符集为utf-8

-DDEFAULT_COLLATION=utf8_general_ci              ## 设置默认字符集校对规则

-DEXTRA_CHARSETS=all                             ## 使MySQL支持所有的扩展字符

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock    ## 指定mysql.sock位置

-DWITH_MYISAM_STORAGE_ENGINE=1                   ## 添加MYISAM引擎支持

-DWITH_INNOBASE_STORAGE_ENGINE=1                 ## 添加lnnoDB引擎支持

-DWITH_ARCHIVE_STORAGE_ENGINE=1                  ## 添加ARCHIVE引擎支持

-DWITH_PARTITION_STORAGE_ENGINE=1                ## 安装支持数据库分区

-DWITH_SYSTEMD=1                                 ## 可以使用systemd控制mysql服务

-DWITH_BOOST=/usr/local/boost                    ## 指向boost库所在目录

开始编译及编译安装

[root@localhost mysql-5.7.13]# make && make install

<-- 注 -->:加快编译速度的方法:

[root@localhost mysql-5.7.13]# make -j $(grep processor /proc/cpuinfo |wc -l) && make install

-j:参数表示根据CPU核数指定编译时的线程数,可以加快编译速度(默认为1个线程数)

<-- 注 -->:若要重新运行cmake配置,则需要删除CMakeCache.txt文件:

[root@localhost mysql-5.7.13]# make clean

[root@localhost mysql-5.7.13]# rm -f CMakeCache.txt

优化MySQL的执行路径

[root@localhost mysql-5.7.13]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

[root@localhost mysql-5.7.13]# source /etc/profile

4、设置权限并初始化MySQL系统授权表

[root@localhost ~]# cd /usr/local/mysql/

[root@localhost mysql]# chown -R mysql:mysql .

[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local --datadir=/usr/local/mysql/data

安装MySQL 5.7.13_第1张图片 

<-- 注 -->:以root初始化操作系统时要加--user=mysql参数,生成一个随机密码。(需记住登入时要用)

5、创建配置文件

[root@localhost mysql]# cd support-files/

[root@localhost support-files]# cp my-default.cnf /etc/my.cnf

[root@localhost ~]# vim /etc/my.cnf        ##[mysqld]下面添加以下内容

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 1

socket = /usr/local/mysql/mysql.sock

log-error = /usr/local/mysql/data/mysqld.err

6、配置mysql自动启动

[root@localhost ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

<-- 注 -->因为mysqld.service 把默认的pid文件指定到/var/run/mysqld目录,而没有事先建立目录,所有这个时候启动mysql会失败。两种解决方法:

第一种方法:创建/var/run/mysqld目录并设置属主属主为mysql

root@localhost ~]# mkdir /var/run/mysqld

[root@localhost ~]# chown -R mysql:mysql /var/run/mysqld/

第二种方法:修改/usr/lib/system/system/mysqld.service

[root@localhost ~]# vim /usr/lib/systemd/system/mysqld.service

 安装MySQL 5.7.13_第2张图片

[root@localhost ~]# systemctl daemon-reload

启动mysql服务

[root@localhost ~]# systemctl start mysqld.service

[root@localhost ~]# systemctl status mysqld.service

 安装MySQL 5.7.13_第3张图片

查看端口号

[root@localhost ~]# netstat -anpt |grep mysqld

 wKioL1i5jfbgtGjaAAAScwlhW34212.png

6、设置数据库管理员用户root密码

[root@localhost ~]# mysqladmin -uroot -p'=hJ?V:?9vQ-Q' password 123.com

注:这里-p选项中输入初始化时生成的随机密码

访问MySQL数据库

[root@localhost ~]# mysql -u root -p

 安装MySQL 5.7.13_第4张图片

——到此MySQL 5.7.13安装完成