Centos7.2编译安装mysql5.7.18配置及详解

一、mysql5.7的主要特性

(1.)原生支持Systemd

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

(3.)更好的InnoDB存储引擎

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

(5.)新增sys库:以后这会是DBA访问最频繁的库

(6.)更好的优化器: 优化器代码重构的意义将在这个版本及以后版本中带来巨大的改进,Oracle官方正在解决mysql之前最大的难题原生JSON类型的支持(JavaScript object Notation)

注:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似c语言家族的习惯(包括c、c++、c#、java、JavaScript、Perl、Python)等。这些特性使json称为理想的数据交换语言。易于阅读和编写,同时也易于机器解析和生成(一般用于提升网路传输速率)。

数据在键值对中

数据由逗号分隔

花括号保存对象

方括号保存数据

二、安装mysql5.7.18

1.系统环境:centos7.2 x86_64

[root@kang ~]# uname -r
3.10.0-327.el7.x86_64
[root@kang ~]# cat  /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
因为centos7.2默认安装了mariadb-libs,所有先要卸载掉,如果不卸载的话安装时就会报错。

同时也要避免因安装mariadb-libs已经生成的不必要的文件。

首先查看是否安装mariadb-libs

[root@kang ~]# rpm  -qa | grep  mariadb-libs
mariadb-libs-5.5.44-2.el7.centos.x86_64
卸载mariadb-libs

   

[root@kang ~]# rpm  -e  mariadb-libs --nodeps
2.安装mysql相关依赖包

依赖包的作用:

  •     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:字符终端处理库

安装文件准备:

下载cmake-3.5.tar.gz      下载地址:http://www.cmake.org/download/
下载ncurses-5.9.tar.gz     下载地址:ftp://ftp.gnu.org/gnu/ncurese/

下载bison-3.0.4.tar.gz      下载地址:ftp://ftp.gnu.org/gnu/bison/

下载mysql-5.7.18.tar.gz   

下载地址:wget  http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz

下载Boost_1_59_0.tar.gz

wget  http://nchc.dl.sourceforge.net/project/boost/boosst/1.5.9.0/boost_1_59_0.tar.gz

(1.)安装cmake

[root@kang ~]# tar zxf  cmake-3.5.2.tar.gz 
[root@kang ~]# cd cmake-3.5.2/
[root@kang cmake-3.5.2]# ./bootstrap 
Centos7.2编译安装mysql5.7.18配置及详解_第1张图片

[root@kang cmake-3.5.2]# gmake && gmake install 
Centos7.2编译安装mysql5.7.18配置及详解_第2张图片

cmake  -version #查看cmake版本信息
Centos7.2编译安装mysql5.7.18配置及详解_第3张图片

(2.)安装ncurses

[root@kang ~]# tar zxf ncurses-5.9.tar.gz 
[root@kang ~]# cd ncurses-5.9/
[root@kang ncurses-5.9]# ./configure && make && make install
Centos7.2编译安装mysql5.7.18配置及详解_第4张图片

(3.)安装bison

[root@kang ~]# tar zxf bison-3.0.4.tar.gz 
[root@kang ~]# cd  bison-3.0.4/
[root@kang bison-3.0.4]# ./configure && make && make install

Centos7.2编译安装mysql5.7.18配置及详解_第5张图片

(4.)安装boost

[root@kang ~]# tar zxf boost_1_59_0.tar.gz 
[root@kang ~]# mv boost_1_59_0 /usr/local/boost
(5.)创建mysql用户和组及相关的目录

[root@kang ~]# groupadd  -r mysql && useradd -r -g mysql -s /bin/false -M mysql 
[root@kang ~]# mkdir /usr/local/mysql
[root@kang ~]# mkdir /usr/local/mysql/data
(6.)编译安装mysql

  解压源码包:

[root@kang ~]# tar zxf mysql-5.7.18.tar.gz 
[root@kang ~]# cd mysql-5.7.18/
[root@kang mysql-5.7.18]# 
执行cmake命令进行编译前的配置:

[root@kang mysql-5.7.18]# 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

Centos7.2编译安装mysql5.7.18配置及详解_第6张图片

开始进行编译安装:

[root@kang mysql-5.7.18]# make && make install 

Centos7.2编译安装mysql5.7.18配置及详解_第7张图片

注:配置参数详解:

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

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

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

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

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

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

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

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

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

-DDEFAULT_CHARSET=utf8 #设置mysql的默认字符集为utf8

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

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

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

(7.)设置环境变量

[root@kang ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@kang ~]# source /etc/profile
(8.)给mysql数据目录文件设置相关权限

[root@kang ~]# chown  -R  mysql:mysql  /usr/local/mysql/
[root@kang ~]# cd /usr/local/mysql/
[root@kang mysql]# chmod  755  data/
(9.)初始化mysql数据库

[root@kang mysql]# cd /usr/local/mysql/
[root@kang mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
Centos7.2编译安装mysql5.7.18配置及详解_第8张图片

(10)创建并修改mysql主配置文件

[root@kang ~]# cd /usr/local/mysql/
[root@kang mysql]# vim /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
~
注:重新扫描systemd,扫描新的或有变动的单元

[root@kang mysql]# systemctl daemon-reload 
(11.)配置mysql自动启动

[root@kang mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system
 mysql数据库服务启动失败!

[root@kang mysql]# systemctl  start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
查看错误日志文件:

Centos7.2编译安装mysql5.7.18配置及详解_第9张图片

通过上面错误发现,在mysqld.service,把默认的pid文件指定到了/var/run/mysqld/目录,而并没有事先建立该目录,因此要手动建立该目录并把权限赋给mysql用户,这样就不会报错了!!

[root@kang ~]# mkdir /var/run/mysqld
[root@kang ~]# chown  -R  mysql:mysql /var/run/mysqld/
#systemctl  daemon-reload
再次启动mysql服务:

Centos7.2编译安装mysql5.7.18配置及详解_第10张图片

查看端口号:

访问mysql数据库:

mysql -uroot -p YGyr8jr=?,Ta       #获取临时密码可以进到data目录,通过这种方式查看 cat mysqld.err | grep password 
Centos7.2编译安装mysql5.7.18配置及详解_第11张图片

(12)设置数据库管理员用户root的密码

[root@kang ~]# mysqladmin  -uroot -p password 'pwd123'
Enter password: 


Centos7.2编译安装mysql5.7.18配置及详解_第12张图片

各位到此mysql-5.7.18的数据库到这就安装完了 !!

希望对你们有所帮助 !!   

安装过程有点漫长要耐心等待哦!! 

























你可能感兴趣的:(数据库服务管理,MySQL数据库从入门到实践)