一、简介:


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源码编译完全由C和C++编写,要求必需安装GCC。


# bison:Linux下C/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版本:

安装MySQL 5.7.13_安装MySQL 5.7.13

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

wKiom1i5jX_BdMaWAAC4kDE_t6w848.png 


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


安装MySQL 5.7.13_安装MySQL 5.7.13_02


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

 wKioL1i5jcih-1pSAABfPlEj0H4569.png

安装MySQL 5.7.13_安装MySQL 5.7.13_03

[root@localhost ~]# systemctl daemon-reload

启动mysql服务

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

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


安装MySQL 5.7.13_安装MySQL 5.7.13_04

 wKiom1i5jeOAOEthAACUcYKDVck794.png

查看端口号


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

安装MySQL 5.7.13_安装MySQL 5.7.13_05

 wKioL1i5jfbgtGjaAAAScwlhW34212.png


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


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

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


访问MySQL数据库

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

 wKiom1i5jhLhd7n1AABg14_fP4A545.png

——到此MySQL 5.7.13安装完成