1.系统环境

[root@szlinux02~]#uname-r

3.10.0-514.el7.x86_64


[root@szlinux02~]#cat/etc/redhat-release

CentOS Linux release 7.3.1611 (Core)


[root@szlinux02~]#rpm-qa|grepmariadb

mariadb-libs-5.5.52-1.el7.x86_64


[root@szlinux02~]#rpm-e--nodepsmariadb-libs
[root@szlinux02~]#
[root@szlinux02~]#yuminstall-ygccgcc-c++perl


2.安装依赖包


相关依赖包的作用

cmake:由于从 MysqL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器,用于设置 MysqL 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。
Boost:#从 MysqL 5.7.5 开始 Boost 库是必需的,MysqL 源码中用到了 C++的 Boost 库,要求必须安装 boost1.59.0 或以上版本
GCC:是 Linux 下的 C 语言编译工具,MysqL 源码编译完全由 C 和 C++编写,要求必须安装GCC
bison:Linux 下 C/C++语法分析器
ncurses:字符终端处理库


1) 安装文件准备


下载 cmake-3.8.1.tar.gz 源码发布包
http://www.cmake.org/download/

wgethttps://cmake.org/files/v3.8/cmake-3.8.1.tar.gz


下载 ncurses-6.0.tar.gz
ftp://ftp.gnu.org/gnu/ncurses/

wgetftp://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz


下载 m4-1.4.18.tar.gz

wgethttp://mirrors.kernel.org/gnu/m4/m4-1.4.18.tar.gz


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

wgethttp://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz


下载 MysqL-5.7.18.tar.gz

wgethttps://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-5.7.18.tar.gz


下载 Boost_1_59_0.tar.gz

wgethttps://ncu.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz



2)安装 CMAKE 及必要的软件


安装 cmake

[root@szlinux02~]#tarzxvfcmake-3.8.1.tar.gz
[root@szlinux02~]#cdcmake-3.8.1
[root@szlinux02cmake-3.8.1]#./bootstrap
[root@szlinux02cmake-3.8.1]#gmake&&gmakeinstall
[root@szlinux02cmake-3.8.1]#cmake-version
[root@szlinux02cmake-3.8.1]#cd~


安装m4

[root@szlinux02~]#tarzxvfm4-1.4.18.tar.gz
[root@szlinux02~]#cdm4-1.4.18
[root@szlinux02m4-1.4.18]#./configure
[root@szlinux02m4-1.4.18]#make&&makeinstall
[root@szlinux02m4-1.4.18]#cd~


安装 bison(注:需要perl和m4支持)

[root@szlinux02~]#tarzxvfbison-3.0.4.tar.gz
[root@szlinux02~]#cdbison-3.0.4
[root@szlinux02bison-3.0.4]#./configure
[root@szlinux02bison-3.0.4]#make&&makeinstall
[root@szlinux02bison-3.0.4]#cd~


安装 ncurses

[root@szlinux02~]#tarzxvfncurses-6.0.tar.gz
[root@szlinux02~]#cdncurses-6.0
[root@szlinux02ncurses-6.0]#./configure
[root@szlinux02ncurses-6.0]#make&&makeinstall
[root@szlinux02ncurses-6.0]#cd~


安装 boost(注:MysqL 5.7.18需要的boost正确版本为boost_1_59_0)

[root@szlinux02~]#tarzxvfboost_1_59_0.tar.gz
[root@szlinux02~]#mvboost_1_59_0/usr/local/boost


3.创建MysqL用户、用户组及目录

[root@szlinux02~]#groupadd-rMysqL&&useradd-r-gMysqL-s/bin/false-MMysqL
[root@szlinux02~]#mkdir/usr/local/MysqL
[root@szlinux02~]#mkdir-p/data/MysqL


4.预编译

[root@szlinux02~]#tarzxvfMysqL-5.7.18.tar.gz
[root@szlinux02~]#cdMysqL-5.7.18
[root@szlinux02MysqL-5.7.18]#cmake.-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL\
-DMysqL_DATADIR=/data/MysqL\
-DWITH_BOOST=/usr/local/boost\
-DSYSconfdIR=/etc\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_PARTITION_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DENABLED_LOCAL_INFILE=1\
-DENABLE_DTRACE=0\
-DDEFAULT_CHARSET=utf8mb4\
-DDEFAULT_COLLATION=utf8mb4_general_ci\
-DWITH_EMbedDED_SERVER=OFF


5.编译安装

[root@szlinux02MysqL-5.7.18]#make-j`grepprocessor/proc/cpuinfo|wc-l`
[root@szlinux02MysqL-5.7.18]#makeinstall

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


6.设置权限并初始化 MysqL 系统授权表

[root@szlinux02MysqL-5.7.18]#cd/usr/local/MysqL
[root@szlinux02MysqL]#chown-RMysqL:MysqL.
[root@szlinux02MysqL]#mkdirtemp
[root@szlinux02MysqL]#chmod777./temp
[root@szlinux02MysqL]#cd/data/MysqL
[root@szlinux02MysqL]#chown-RMysqL:MysqL.


MysqL 5.7.6之前的版本执行这个脚本初始化系统数据库

./bin/MysqL_install_db--user=MysqL--basedir=/usr/local/MysqL--datadir=/data/MysqL


5.7.6之后版本初始系统数据库脚本

[root@szlinux02MysqL]#cd/usr/local/MysqL
[root@szlinux02MysqL]#./bin/MysqLd--initialize-insecure--user=MysqL--basedir=/usr/local/MysqL--datadir=/data/MysqL


注意:
MysqL之前版本MysqL_install_db是在MysqL_basedir/script下,MysqL 5.7直接放在了MysqL_basedir/bin目录下。
"--initialize"已废弃,生成一个随机密码(~/.MysqL_secret)
"--initialize-insecure"不会生成密码
"--datadir"目录下不能有数据文件

[root@szlinux02MysqL]#./bin/MysqL_ssl_rsa_setup


7.创建配置文件

[root@szlinux02 MysqL]# cat > /etc/my.cnf << EOF


[client]
port=3306
socket=/usr/local/MysqL/MysqL.sock
[MysqLd]
character-set-server=utf8
collation-server=utf8_general_ci

skip-external-locking
skip-name-resolve

user=MysqL
port=3306
basedir=/usr/local/MysqL
datadir=/data/MysqL
tmpdir=/usr/local/MysqL/temp
# server_id = .....
socket=/usr/local/MysqL/MysqL.sock
log-error=/usr/local/MysqL/logs/MysqL_error.log
pid-file=/usr/local/MysqL/MysqL.pid
open_files_limit=10240
back_log=600
max_connections=500
max_connect_errors=6000
wait_timeout=605800
#open_tables=600
#table_cache = 650
#opened_tables = 630

max_allowed_packet=32M
sort_buffer_size=4M
join_buffer_size=4M
thread_cache_size=300
query_cache_type=1
query_cache_size=256M
query_cache_limit=2M
query_cache_min_res_unit=16k

tmp_table_size=256M
max_heap_table_size=256M

key_buffer_size=256M
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=64M

lower_case_table_names=1

default-storage-engine=INNODB

innodb_buffer_pool_size=2G
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT
#####################
thread_concurrency=32
long_query_time=2
slow-query-log=on
slow-query-log-file=/usr/local/MysqL/logs/MysqL-slow.log

[MysqLdump]
quick
max_allowed_packet=32M

[MysqLd_safe]
log-error=/var/log/MysqLd.log
pid-file=/var/run/MysqLd/MysqLd.pid
EOF


8.配置MysqL服务

[root@szlinux02MysqL]#cp/usr/local/MysqL/support-files/MysqL.server/etc/init.d/MysqLd
[root@szlinux02MysqL]#chkconfig--addMysqLd
[root@szlinux02MysqL]#chkconfigMysqLdon


9.启动服务

[root@szlinux02MysqL]#serviceMysqLdstart
[root@szlinux02MysqL]#netstat-anpt|grepMysqLd


10. 配置MysqL环境变量

[root@szlinux02MysqL]#echo-e'\n\nexportPATH=/usr/local/MysqL/bin:$PATH\n'>>/etc/profile&&source/etc/profile


11.设置数据库root用户密码

[root@szlinux02MysqL]#./bin/MysqL_secure_installation


12.创建其他MysqL数据库用户

[root@szlinux02MysqL]#MysqL-uroot-p
MysqL>CREATEDATABASE`testdb`DEFAULTCHaraCTERSETutf8COLLATEutf8_general_ci;
MysqL>grantallprivilegesontestdb.*to'ryanxu'@'%'identifiedby'ABCabc123!@#';
MysqL>flushprivileges;
myqsl>exit

错误汇总:

1.如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。

[root@szlinux02MysqL-5.7.18]#makeclean
[root@szlinux02MysqL-5.7.18]#rm-fCMakeCache.txt


2.如果报错

make[2]: *** [libMysqLd/examples/MysqL_client_test_embedded] 错误 1
make[1]: *** [libMysqLd/examples/CMakeFiles/MysqL_client_test_embedded.dir/all] 错误 2

加上

-DWITH_EMbedDED_SERVER=OFF

在CentOS 7上源码编译安装MySQL 5.7的更多相关文章

  1. HTML实现代码雨源码及效果示例

    这篇文章主要介绍了HTML实现代码雨源码及效果示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  3. 源码推荐:简化Swift编写的iOS动画,iOS Material Design库

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  4. swift皮筋弹动发射飞机ios源码

    这是一个款采用swift实现的皮筋弹动发射飞机游戏源码,游戏源码比较详细,大家可以研究学习一下吧。

  5. swift 写的app 源码,保存一下下

    http://www.topthink.com/topic/3345.htmlhttp://www.csdn.net/article/2015-01-09/2823502-swift-open-source-libs

  6. swift 源码网站 code4app

    http://code4app.com/ios/HTHorizontalSelectionList/54cb2c94933bf0883a8b4583http://123.th7.cn/code/DMPagerViewController_2522.html

  7. OpenStack Swift源码导读:业务整体架构和Proxy进程

    OpenStack的源码分析在网上已经非常多了,针对各个部分的解读亦是非常详尽。其中proxy是前端的业务接入进程。account、container和object目录分别是账户、容器和对象的业务处理逻辑进程。各个业务进程或模块之间的逻辑关系可以参考《OpenstackSwift简介》文中的架构图。在《OpenstackSwift简介》从理论上面介绍了具体的节点寻找过程。

  8. 源码推荐(7.21):顶部滑动菜单FDSlideBar,Swift版无限循环轮播图

    顶部滑动菜单FDSlideBarFDSlideBar是一个顶部滑动菜单,如常见的网易、腾讯新闻等样式。菜单间切换流畅,具有较好的体验性。测试环境:Xcode6.2,iOS6.0以上Swift版无限循环轮播图无限循环轮播图片点击代理可设置图片Url的数组Url和本地图片混合轮播测试环境:Xcode6.2,iOS7.0以上弹幕系统实现--QHDanumuDemo说明:QHDanmu文件夹下是主要的弹幕模块系统,QHDanmuSend文件夹下是简单的发射弹幕的界面。

  9. openstack swift和wsgi源码分析1 HTTP请求处理过程

    分析proxy-server代理服务的执行流程,其他的三个主要服务accountserver,containerserver,objectserver执行过程通proxyserver类似。入口函数调用run_wsgi,此函数完成以下工作:下面重点研究下process_request函数是如何把消息转化为HTTP的request对象这一过程。process_request函数,生成HttpProtocol对象,并执行init操作,注意,HttpProtocol对象自身没有init函数,所以会调用父类的父类的

  10. fir.im Weekly - 进击的 Swift

    最近Swift开源了,众开发者们欢呼雀跃。本期fir.imWeekly准备了一些关于Swift的“新鲜”干货分享,也包括一些优秀的GitHub源码、开发工具和技术文章等等。同时,苹果启用了新的官网:Swift.org,Swift的GitHub主页:https://github.com/apple/swiftSwift3API设计准则勤快的@星夜暮晨翻译了苹果Swift官方网站博客的一篇文章:Swift3APIDesignGuidelines,了解Swift3特性,希望对你有所帮助。如何在iOS中实现一个可

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部