源码安装mysql5.7.27
MySQL从5.7版本之后,boost是必须的,建议把系统自带的boost库卸载,源码编译安装高版本
[root@server ~]# rpm -qa |grep boost
boost-system-1.53.0-28.el7.x86_64
boost-iostreams-1.53.0-28.el7.x86_64
boost-random-1.53.0-28.el7.x86_64
boost-date-time-1.53.0-28.el7.x86_64
boost-thread-1.53.0-28.el7.x86_64
[root@server ~]#
[root@server ~]# yum -y remove boost-*
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 boost-date-time.x86_64.0.1.53.0-28.el7 将被 删除
--> 正在处理依赖关系 libboost_date_time-mt.so.1.53.0()(64bit),它被软件包 dyninst-9.3.1-3.el7.x86_64 需要
---> 软件包 boost-iostreams.x86_64.0.1.53.0-28.el7 将被 删除
--> 正在处理依赖关系 libboost_iostreams-mt.so.1.53.0()(64bit),它被软件包 1:librados2-10.2.5-4.el7.x86_64 需要
--> 正在处理依赖关系 libboost_iostreams-mt.so.1.53.0()(64bit),它被软件包 1:librbd1-10.2.5-4.el7.x86_64 需要
---> 软件包 boost-random.x86_64.0.1.53.0-28.el7 将被 删除
---> 软件包 boost-system.x86_64.0.1.53.0-28.el7 将被 删除
---> 软件包 boost-thread.x86_64.0.1.53.0-28.el7 将被 删除
--> 正在检查事务
---> 软件包 dyninst.x86_64.0.9.3.1-3.el7 将被 删除
--> 正在处理依赖关系 libdyninstAPI.so.9.3()(64bit),它被软件包 systemtap-runtime-4.0-13.el7.x86_64 需要
--> 正在处理依赖关系 libsymtabAPI.so.9.3()(64bit),它被软件包 systemtap-runtime-4.0-13.el7.x86_64 需要
---> 软件包 librados2.x86_64.1.10.2.5-4.el7 将被 删除
--> 正在处理依赖关系 librados.so.2()(64bit),它被软件包 10:qemu-img-1.5.3-175.el7.x86_64 需要
--> 正在处理依赖关系 librados.so.2()(64bit),它被软件包 libvirt-daemon-driver-storage-rbd-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 librados.so.2()(64bit),它被软件包 10:qemu-kvm-common-1.5.3-175.el7.x86_64 需要
--> 正在处理依赖关系 librados.so.2()(64bit),它被软件包 10:qemu-kvm-1.5.3-175.el7.x86_64 需要
---> 软件包 librbd1.x86_64.1.10.2.5-4.el7 将被 删除
--> 正在检查事务
---> 软件包 libvirt-daemon-driver-storage-rbd.x86_64.0.4.5.0-36.el7 将被 删除
--> 正在处理依赖关系 libvirt-daemon-driver-storage-rbd = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-4.5.0-36.el7.x86_64 需要
---> 软件包 qemu-img.x86_64.10.1.5.3-175.el7 将被 删除
---> 软件包 qemu-kvm.x86_64.10.1.5.3-175.el7 将被 删除
--> 正在处理依赖关系 qemu-kvm,它被软件包 libvirt-daemon-kvm-4.5.0-36.el7.x86_64 需要
---> 软件包 qemu-kvm-common.x86_64.10.1.5.3-175.el7 将被 删除
---> 软件包 systemtap-runtime.x86_64.0.4.0-13.el7 将被 删除
--> 正在处理依赖关系 systemtap-runtime = 4.0-13.el7,它被软件包 systemtap-client-4.0-13.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libvirt-daemon-driver-storage.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-kvm.x86_64.0.4.5.0-36.el7 将被 删除
--> 正在处理依赖关系 libvirt-daemon-kvm,它被软件包 gnome-boxes-3.28.5-4.el7.x86_64 需要
---> 软件包 systemtap-client.x86_64.0.4.0-13.el7 将被 删除
--> 正在处理依赖关系 systemtap-client = 4.0-13.el7,它被软件包 systemtap-4.0-13.el7.x86_64 需要
--> 正在检查事务
---> 软件包 gnome-boxes.x86_64.0.3.28.5-4.el7 将被 删除
---> 软件包 systemtap.x86_64.0.4.0-13.el7 将被 删除
--> 正在处理依赖关系 /usr/bin/qemu-img,它被软件包 libvirt-daemon-driver-storage-core-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 /usr/bin/qemu-img,它被软件包 libvirt-daemon-driver-qemu-4.5.0-36.el7.x86_64 需要
--> 正在使用新的信息重新解决依赖关系
--> 正在检查事务
---> 软件包 libvirt-daemon-driver-qemu.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-core.x86_64.0.4.5.0-36.el7 将被 删除
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-mpath-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-iscsi-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-gluster-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-scsi-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-disk-4.5.0-36.el7.x86_64 需要
--> 正在处理依赖关系 libvirt-daemon-driver-storage-core = 4.5.0-36.el7,它被软件包 libvirt-daemon-driver-storage-logical-4.5.0-36.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libvirt-daemon-driver-storage-disk.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-gluster.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-iscsi.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-logical.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-mpath.x86_64.0.4.5.0-36.el7 将被 删除
---> 软件包 libvirt-daemon-driver-storage-scsi.x86_64.0.4.5.0-36.el7 将被 删除
--> 解决依赖关系完成
base/7/x86_64 | 3.6 kB 00:00:00
extras/7/x86_64 | 2.9 kB 00:00:00
extras/7/x86_64/primary_db | 250 kB 00:00:00
updates/7/x86_64 | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 25 MB 00:00:04
依赖关系解决
================================================================================================================
Package 架构 版本 源 大小
================================================================================================================
正在删除:
boost-date-time x86_64 1.53.0-28.el7 @anaconda 136 k
boost-iostreams x86_64 1.53.0-28.el7 @anaconda 209 k
boost-random x86_64 1.53.0-28.el7 @anaconda 24 k
boost-system x86_64 1.53.0-28.el7 @anaconda 32 k
boost-thread x86_64 1.53.0-28.el7 @anaconda 93 k
为依赖而移除:
dyninst x86_64 9.3.1-3.el7 @anaconda 12 M
gnome-boxes x86_64 3.28.5-4.el7 @anaconda 5.5 M
librados2 x86_64 1:10.2.5-4.el7 @anaconda 5.5 M
librbd1 x86_64 1:10.2.5-4.el7 @anaconda 7.4 M
libvirt-daemon-driver-qemu x86_64 4.5.0-36.el7 @anaconda 1.5 M
libvirt-daemon-driver-storage x86_64 4.5.0-36.el7 @anaconda 0.0
libvirt-daemon-driver-storage-core x86_64 4.5.0-36.el7 @anaconda 707 k
libvirt-daemon-driver-storage-disk x86_64 4.5.0-36.el7 @anaconda 68 k
libvirt-daemon-driver-storage-gluster x86_64 4.5.0-36.el7 @anaconda 132 k
libvirt-daemon-driver-storage-iscsi x86_64 4.5.0-36.el7 @anaconda 64 k
libvirt-daemon-driver-storage-logical x86_64 4.5.0-36.el7 @anaconda 72 k
libvirt-daemon-driver-storage-mpath x86_64 4.5.0-36.el7 @anaconda 60 k
libvirt-daemon-driver-storage-rbd x86_64 4.5.0-36.el7 @anaconda 80 k
libvirt-daemon-driver-storage-scsi x86_64 4.5.0-36.el7 @anaconda 64 k
libvirt-daemon-kvm x86_64 4.5.0-36.el7 @anaconda 0.0
qemu-img x86_64 10:1.5.3-175.el7 @anaconda 2.3 M
qemu-kvm x86_64 10:1.5.3-175.el7 @anaconda 5.7 M
qemu-kvm-common x86_64 10:1.5.3-175.el7 @anaconda 755 k
systemtap x86_64 4.0-13.el7 @anaconda 0.0
systemtap-client x86_64 4.0-13.el7 @anaconda 10 M
systemtap-runtime x86_64 4.0-13.el7 @anaconda 1.1 M
事务概要
================================================================================================================
移除 5 软件包 (+21 依赖软件包)
安装大小:54 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : systemtap-4.0-13.el7.x86_64 1/26
正在删除 : systemtap-client-4.0-13.el7.x86_64 2/26
正在删除 : systemtap-runtime-4.0-13.el7.x86_64 3/26
正在删除 : dyninst-9.3.1-3.el7.x86_64 4/26
正在删除 : gnome-boxes-3.28.5-4.el7.x86_64 5/26
正在删除 : libvirt-daemon-kvm-4.5.0-36.el7.x86_64 6/26
正在删除 : libvirt-daemon-driver-storage-4.5.0-36.el7.x86_64 7/26
正在删除 : 10:qemu-kvm-1.5.3-175.el7.x86_64 8/26
正在删除 : libvirt-daemon-driver-storage-rbd-4.5.0-36.el7.x86_64 9/26
正在删除 : 10:qemu-kvm-common-1.5.3-175.el7.x86_64 10/26
正在删除 : libvirt-daemon-driver-qemu-4.5.0-36.el7.x86_64 11/26
正在删除 : libvirt-daemon-driver-storage-disk-4.5.0-36.el7.x86_64 12/26
正在删除 : libvirt-daemon-driver-storage-logical-4.5.0-36.el7.x86_64 13/26
正在删除 : libvirt-daemon-driver-storage-scsi-4.5.0-36.el7.x86_64 14/26
正在删除 : libvirt-daemon-driver-storage-iscsi-4.5.0-36.el7.x86_64 15/26
正在删除 : libvirt-daemon-driver-storage-mpath-4.5.0-36.el7.x86_64 16/26
正在删除 : libvirt-daemon-driver-storage-gluster-4.5.0-36.el7.x86_64 17/26
正在删除 : libvirt-daemon-driver-storage-core-4.5.0-36.el7.x86_64 18/26
正在删除 : 10:qemu-img-1.5.3-175.el7.x86_64 19/26
正在删除 : 1:librbd1-10.2.5-4.el7.x86_64 20/26
正在删除 : 1:librados2-10.2.5-4.el7.x86_64 21/26
正在删除 : boost-thread-1.53.0-28.el7.x86_64 22/26
正在删除 : boost-system-1.53.0-28.el7.x86_64 23/26
正在删除 : boost-iostreams-1.53.0-28.el7.x86_64 24/26
正在删除 : boost-random-1.53.0-28.el7.x86_64 25/26
正在删除 : boost-date-time-1.53.0-28.el7.x86_64 26/26
验证中 : 1:librbd1-10.2.5-4.el7.x86_64 1/26
验证中 : libvirt-daemon-driver-storage-4.5.0-36.el7.x86_64 2/26
验证中 : libvirt-daemon-driver-storage-rbd-4.5.0-36.el7.x86_64 3/26
验证中 : boost-thread-1.53.0-28.el7.x86_64 4/26
验证中 : boost-random-1.53.0-28.el7.x86_64 5/26
验证中 : 10:qemu-kvm-1.5.3-175.el7.x86_64 6/26
验证中 : systemtap-runtime-4.0-13.el7.x86_64 7/26
验证中 : libvirt-daemon-driver-storage-iscsi-4.5.0-36.el7.x86_64 8/26
验证中 : systemtap-client-4.0-13.el7.x86_64 9/26
验证中 : boost-iostreams-1.53.0-28.el7.x86_64 10/26
验证中 : libvirt-daemon-driver-storage-logical-4.5.0-36.el7.x86_64 11/26
验证中 : boost-date-time-1.53.0-28.el7.x86_64 12/26
验证中 : dyninst-9.3.1-3.el7.x86_64 13/26
验证中 : boost-system-1.53.0-28.el7.x86_64 14/26
验证中 : systemtap-4.0-13.el7.x86_64 15/26
验证中 : libvirt-daemon-driver-storage-gluster-4.5.0-36.el7.x86_64 16/26
验证中 : 10:qemu-kvm-common-1.5.3-175.el7.x86_64 17/26
验证中 : 10:qemu-img-1.5.3-175.el7.x86_64 18/26
验证中 : 1:librados2-10.2.5-4.el7.x86_64 19/26
验证中 : libvirt-daemon-driver-storage-core-4.5.0-36.el7.x86_64 20/26
验证中 : libvirt-daemon-driver-storage-disk-4.5.0-36.el7.x86_64 21/26
验证中 : gnome-boxes-3.28.5-4.el7.x86_64 22/26
验证中 : libvirt-daemon-driver-storage-mpath-4.5.0-36.el7.x86_64 23/26
验证中 : libvirt-daemon-driver-storage-scsi-4.5.0-36.el7.x86_64 24/26
验证中 : libvirt-daemon-driver-qemu-4.5.0-36.el7.x86_64 25/26
验证中 : libvirt-daemon-kvm-4.5.0-36.el7.x86_64 26/26
删除:
boost-date-time.x86_64 0:1.53.0-28.el7 boost-iostreams.x86_64 0:1.53.0-28.el7 boost-random.x86_64 0:1.53.0-28.el7 boost-system.x86_64 0:1.53.0-28.el7
boost-thread.x86_64 0:1.53.0-28.el7
作为依赖被删除:
dyninst.x86_64 0:9.3.1-3.el7 gnome-boxes.x86_64 0:3.28.5-4.el7
librados2.x86_64 1:10.2.5-4.el7 librbd1.x86_64 1:10.2.5-4.el7
libvirt-daemon-driver-qemu.x86_64 0:4.5.0-36.el7 libvirt-daemon-driver-storage.x86_64 0:4.5.0-36.el7
libvirt-daemon-driver-storage-core.x86_64 0:4.5.0-36.el7 libvirt-daemon-driver-storage-disk.x86_64 0:4.5.0-36.el7
libvirt-daemon-driver-storage-gluster.x86_64 0:4.5.0-36.el7 libvirt-daemon-driver-storage-iscsi.x86_64 0:4.5.0-36.el7
libvirt-daemon-driver-storage-logical.x86_64 0:4.5.0-36.el7 libvirt-daemon-driver-storage-mpath.x86_64 0:4.5.0-36.el7
libvirt-daemon-driver-storage-rbd.x86_64 0:4.5.0-36.el7 libvirt-daemon-driver-storage-scsi.x86_64 0:4.5.0-36.el7
libvirt-daemon-kvm.x86_64 0:4.5.0-36.el7 qemu-img.x86_64 10:1.5.3-175.el7
qemu-kvm.x86_64 10:1.5.3-175.el7 qemu-kvm-common.x86_64 10:1.5.3-175.el7
systemtap.x86_64 0:4.0-13.el7 systemtap-client.x86_64 0:4.0-13.el7
systemtap-runtime.x86_64 0:4.0-13.el7
完毕!
[root@server ~]#
卸载系统自带的mysql
[root@server ~]#
[root@server ~]# rpm -qa |grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@server ~]#
[root@server ~]# rpm -qa |grep mysql
[root@server ~]#
[root@server ~]# yum -y remove mysql mariadb-*
已加载插件:fastestmirror, langpacks
参数 mysql 没有匹配
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.68-1.el7 将被 删除
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
--> 正在处理依赖关系 libmysqlclient.so.18(libmysqlclient_18)(64bit),它被软件包 2:postfix-2.10.1-9.el7.x86_64 需要
--> 正在检查事务
---> 软件包 postfix.x86_64.2.2.10.1-9.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
================================================================================================================
Package 架构 版本 源 大小
================================================================================================================
正在删除:
mariadb-libs x86_64 1:5.5.68-1.el7 @anaconda 4.4 M
为依赖而移除:
postfix x86_64 2:2.10.1-9.el7 @anaconda 12 M
事务概要
================================================================================================================
移除 1 软件包 (+1 依赖软件包)
安装大小:17 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : 2:postfix-2.10.1-9.el7.x86_64 1/2
正在删除 : 1:mariadb-libs-5.5.68-1.el7.x86_64 2/2
验证中 : 1:mariadb-libs-5.5.68-1.el7.x86_64 1/2
验证中 : 2:postfix-2.10.1-9.el7.x86_64 2/2
删除:
mariadb-libs.x86_64 1:5.5.68-1.el7
作为依赖被删除:
postfix.x86_64 2:2.10.1-9.el7
完毕!
[root@server ~]#
第一步:下载源码包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
第二步:解决安装依赖包
[root@server ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.ustc.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.ustc.edu.cn
软件包 1:make-3.82-24.el7.x86_64 已安装并且是最新版本
软件包 gcc-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 gcc-c++-4.8.5-44.el7.x86_64 已安装并且是最新版本
软件包 bison-3.0.4-2.el7.x86_64 已安装并且是最新版本
软件包 ncurses-5.9-14.20130511.el7_4.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 cmake.x86_64.0.2.8.12.2-2.el7 将被 安装
---> 软件包 ncurses-devel.x86_64.0.5.9-14.20130511.el7_4 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================================================
Package 架构 版本 源 大小
================================================================================================================
正在安装:
cmake x86_64 2.8.12.2-2.el7 base 7.1 M
ncurses-devel x86_64 5.9-14.20130511.el7_4 base 712 k
事务概要
================================================================================================================
安装 2 软件包
总下载量:7.7 M
安装大小:29 M
Downloading packages:
(1/2): ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm | 712 kB 00:00:00
(2/2): cmake-2.8.12.2-2.el7.x86_64.rpm | 7.1 MB 00:00:03
----------------------------------------------------------------------------------------------------------------
总计 2.3 MB/s | 7.7 MB 00:00:03
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : ncurses-devel-5.9-14.20130511.el7_4.x86_64 1/2
正在安装 : cmake-2.8.12.2-2.el7.x86_64 2/2
验证中 : cmake-2.8.12.2-2.el7.x86_64 1/2
验证中 : ncurses-devel-5.9-14.20130511.el7_4.x86_64 2/2
已安装:
cmake.x86_64 0:2.8.12.2-2.el7 ncurses-devel.x86_64 0:5.9-14.20130511.el7_4
完毕!
[root@server ~]#
第三步:添加用户和组
groupadd mysql
useradd -M -s /sbin/nologin -r -g mysql mysql
-M, --no-create-home 不创建用户的主目录
-s, --shell SHELL 新账户的登录 shell
-r, --system 创建一个系统账户
-g, --gid GROUP 新账户主组的名称或 ID
[root@server ~]# useradd --help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为SELinux用户映射使用指定SEUSER
[root@server ~]#
第四步:解压源码包
tar zxvf mysql-boost-5.7.27.tar.gz -C /usr/local/src/
cd /usr/local/src/mysql-5.7.27
第五步:规划安装目录:
mkdir -pv /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
#安装目录: /usr/local/mysql
#数据目录: /usr/local/mysql/data
第六步:编译
[root@server mysql-5.7.27]# cd /usr/local/src/mysql-5.7.27
[root@server mysql-5.7.27]#
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/mysql-5.7.27/boost/boost_1_59_0
参数注释:
DCMAKE_INSTALL_PREFIX: 指定MySQL程序的安装目录,默认/usr/local/mysql
DEFAULT_CHARSET: 指定服务器默认字符集,默认latin1
DEFAULT_COLLATION: 指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE: 指定是否允许本地执行LOAD DATA INFILE,默认OFF
WITH_COMMENT: 指定编译备注信息
WITH_xxx_STORAGE_ENGINE: 指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR: 初始化参数文件目录
MYSQL_DATADIR: 数据文件目录
MYSQL_TCP_PORT: 服务端口号,默认3306
MYSQL_UNIX_ADDR: socket文件路径,默认/tmp/mysql.sock
[root@server mysql-5.7.27]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/mysql-5.7.27/boost/boost_1_59_0
-- Running cmake version 2.8.12.2
-- Found Git: /usr/bin/git (found version "1.8.3.1")
-- Configuring with MAX_INDEXES = 64U
-- CMAKE_GENERATOR: Unix Makefiles
-- SIZEOF_VOIDP 8
-- MySQL 5.7.27
-- Packaging as: mysql-5.7.27-Linux-x86_64
-- Local boost dir /usr/local/src/mysql-5.7.27/boost/boost_1_59_0
-- Found /usr/local/src/mysql-5.7.27/boost/boost_1_59_0/boost/version.hpp
-- BOOST_VERSION_NUMBER is #define BOOST_VERSION 105900
-- BOOST_INCLUDE_DIR /usr/local/src/mysql-5.7.27/boost/boost_1_59_0
-- NUMA library missing or required version not available
-- Found Git: /usr/bin/git
-- LIBEVENT_INCLUDE_DIRS /usr/local/src/mysql-5.7.27/extra/libevent/include;/usr/local/src/mysql-5.7.27/extra/libevent/include
-- LIBEVENT_LIBRARIES event
-- Cannot find system sasl libraries.
-- WITH_PROTOBUF=bundled
-- protobuf version is 2.6
-- You need to set WITH_CURL. This variable needs to point to curl library.
-- Creating LDAP authentication SASL client library.
-- Currently LDAP SASL client authentication plug-in is build with only system installed cyrus SASL library.
-- Required SASL library is missing. Skipping the LDAP SASL client authentication plugin.
-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl
-- MERGE_CONVENIENCE_LIBRARIES TARGET mysqlclient
-- MERGE_CONVENIENCE_LIBRARIES LIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt;dl
-- MERGE_CONVENIENCE_LIBRARIES MYLIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt
-- checking for module 'libtirpc'
-- package 'libtirpc' not found
-- checking for module 'libtirpc'
-- package 'libtirpc' not found
-- RPC_INCLUDE_DIRS /usr/include
-- Using Boost headers from /usr/local/src/mysql-5.7.27/boost/boost_1_59_0
-- MYSQLX - Text log of protobuf messages enabled
-- Googletest was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build requiredcomponents from source.
-- If you are inside a firewall, you may need to use an https proxy: export https_proxy=http://example.com:80
-- executable target mysqld debug_target /usr/local/src/debug/sql/mysqld
-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl
-- MERGE_CONVENIENCE_LIBRARIES TARGET mysqlserver
-- MERGE_CONVENIENCE_LIBRARIES LIBS dbug;strings;regex;mysys;mysys_ssl;vio;zlib;yassl;taocrypt;crypt;dl;archive_embedded;blackhole_embedded;csv_embedded;federated_embedded;heap_embedded;innobase_embedded;lz4_lib;myisam_embedded;myisammrg_embedded;partition_embedded;ngram_parser_embedded;sql_embedded
-- MERGE_CONVENIENCE_LIBRARIES MYLIBS dbug;strings;regex;mysys;mysys_ssl;vio;zlib;yassl;taocrypt;archive_embedded;blackhole_embedded;csv_embedded;federated_embedded;heap_embedded;innobase_embedded;lz4_lib;myisam_embedded;myisammrg_embedded;partition_embedded;ngram_parser_embedded;sql_embedded
-- library target mysqlserver debug_target /usr/local/src/debug/archive_output_directory/libmysqld.a
-- INSTALL mysqlclient.pc lib/pkgconfig
-- Skipping deb packaging on unsupported platform .
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H;HAVE_LIBEVENT2
-- CMAKE_C_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
-- CMAKE_CXX_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
-- CMAKE_C_LINK_FLAGS:
-- CMAKE_CXX_LINK_FLAGS:
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-5.7.27
[root@server mysql-5.7.27]#
第七步:编译安装
make -j 2 && make install
注:查看服务器CPU核心数
[root@server mysql-5.7.27]# grep processor /proc/cpuinfo | wc -l
2
[root@server mysql-5.7.27]#
第八步:编辑配置文件
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/mysql.sock
character-set-server = utf8
log-error = /usr/local/mysql/mysql.log
pid-file = /usr/local/mysql/mysql.pid
第九步:编辑配置环境变量,让系统读到mysql路径
#vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
#source /etc/profile
第十步:添加mysql服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
第十一步:修改权限:
chown -R mysql:mysql /usr/local/mysql
第十二步:初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@server data]# pwd
/usr/local/mysql/data
[root@server data]# ll
总用量 110628
-rw-r----- 1 mysql mysql 56 3月 13 14:59 auto.cnf
-rw-r----- 1 mysql mysql 424 3月 13 14:59 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 3月 13 14:59 ibdata1
-rw-r----- 1 mysql mysql 50331648 3月 13 14:59 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 3月 13 14:59 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 3月 13 14:59 mysql
drwxr-x--- 2 mysql mysql 8192 3月 13 14:59 performance_schema
drwxr-x--- 2 mysql mysql 8192 3月 13 14:59 sys
[root@server data]#
第十三步:启动服务
[root@server data]# /etc/init.d/mysql start
Starting MySQL. SUCCESS!
[root@server data]#
注:如果启动失败,报错:
/etc/init.d/mysqld start
Starting MySQL... ERROR! The server quit without updating PID file (/tmp/mysqld.pid)
解决方法:
把数据目录删除,重新初始化:
cd /var/lib/mysql/data/
rm -rf ./*
/var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
/etc/init.d/mysqld start
Starting MySQL...SUCCESS!
第十四步:添加开机自启mysql服务
chkconfig --add mysql && chkconfig mysql on
第十五步:初始化后的临时密码在/usr/local/mysql/mysql.log文件中
[root@server mysql]# more /usr/local/mysql/mysql.log |grep password
mysql> status;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> SET PASSWORD = PASSWORD('mysql123');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.27
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /usr/local/mysql/mysql.sock
Uptime: 4 min 50 sec
Threads: 1 Questions: 8 Slow queries: 0 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.027
--------------
mysql>