您的位置:首页 > 运维架构 > Linux

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

2018-02-08 23:36 686 查看
一、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 --nodeps2.安装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


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


cmake -version #查看cmake版本信息


(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



(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




(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



开始进行编译安装:
[root@kang mysql-5.7.18]# make && make install



注:配置参数详解:
-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


(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.查看错误日志文件:



通过上面错误发现,在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服务:



查看端口号:



访问mysql数据库:
mysql -uroot -p YGyr8jr=?,Ta #获取临时密码可以进到data目录,通过这种方式查看 cat mysqld.err | grep password


(12)设置数据库管理员用户root的密码
[root@kang ~]# mysqladmin -uroot -p password 'pwd123'
Enter password:





各位到此mysql-5.7.18的数据库到这就安装完了 !!
希望对你们有所帮助 !!   






安装过程有点漫长要耐心等待哦!! 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: