一、源码编译的优缺点:

1.1 源码编译虽然繁琐复杂,但是有最好的平台适应性。

1.2 能体现出最好的性能(根据系统状态来产出何时的目的代码)

1.3 支持特殊的字符集

1.4 可以定制存储引擎

1.5 编译的过程,也是熟悉MySQL的过程。

二、源码包下载(官网 www.mysql.com)

DOWNLOADS——Archives(归档目录)——MySQL Community Server

下载选项:

Product Version  产品版本 → 选择版本(例如:8.0.12)

Operating System 操作系统 → 选择Source Code(源代码)

OS Version       系统版本 → 选择Generic Linux (Architecture Independent) 通用Linux(架构独立)

下载 Compressed TAR Archive,Includes Boost Headers → 选择带有Boost头的压缩包(MySQL需要Boost C++库构建

三、查看下载文件并解压缩

[root@JSH-01 ~]# cd /usr/local/src/
[root@JSH-01 src]# ls
LinuxProbe.pdf  mysql-boost-8.0.12.tar.gz
[root@JSH-01 src]# tar zxvf mysql-boost-8.0.12.tar.gz
[root@JSH-01 src]# ls
LinuxProbe.pdf  mysql-8.0.12  mysql-boost-8.0.12.tar.gz

四、构建编译环境:使用cmake命令(需要通过yum安装)生成Makefile文件

4.1 cmake的基本使用方法

4.1.1 查看所有编辑选项:在源码目录执行 “ccmake .”或者“cmake . -LH” 命令(.指的是当前目录)

4.1.2 编译参数指定方式为: -DXXX=YYY  例如 -DMYSQL_DATADIR=/usr/local/var

4.1.3 cmake命令执行完毕后会生成MakeFile文件,用于对源代码进行编译

4.1.4 cmake为嵌套方式组织,每个目录下都有CMakeList.txt文件,在根目录下执行cmake命令会一次处理每个子目录下的CMakeList.txt 并生成MakeFile文件

4.1.5 cmake执行一次之后会保存执行状态,如果要重新执行,要删除源码目录下的CMakeList.txt文件

4.1.6 如图为解压缩后,目录内的文件内容

4.2 cmake命令的路径参数

4.2.1 -DCMAKE_INSTALL_PREFIX  指定安装目录(必须指定)

4.2.2 -DMYSQL_DATADIR  指定MySQL数据目录(必须指定)

4.2.3 -DINSTALL_SBINDIR  指定MySQL安装位置(默认为bin)

4.2.4 -DINSTALL_MYSQLSHAREDIR  指定share目录位置(默认为share)

4.2.5 -DINSTALL_LIBDIR  指定lib库安装位置(默认为lib)

4.2.6 -DINSTALL_MANDIR  指定帮助文档安装位置(默认为man)

4.2.7 -DINSTALL_MYSQLTESTDIR  指定测试套件安装位置(默认为mysql-test)

4.2.8 -DINSTALL_PLUGINDIR  指定插件安装位置(默认为plugin)

4.2.9 -DSYSCONFDIR 配置文件目录

4.3 cmake命令的存储引擎配置参数

4.3.1 -DWITH_ARCHIVE_STORAGE_ENGINE  归档引擎(默认打开)

4.3.2 -DWITH_BLACKHOLE_STORAGE_ENGINE  黑洞引擎(默认打开)

4.3.3 -DWITH_FEDERATED_STORAGE_ENGINE  联邦引擎(默认打开)

4.3.4 -DWITH_INNOBASE_STORAGE_ENGINE   Innodb引擎(5.5版之后默认打开)

4.3.5 -DWITH_INNODB_MEMCACHED     Innodb的memcached扩展(默认关闭)

4.3.6 -DWITH_PARTITION_STORAGE_ENGINE  分区引擎(默认打开)

4.3.7 -DWITH_PERFSCHEMA_STORAGE_ENGINE  性能统计表(默认打开)

4.4 与cmake编译相关的参数

4.4.1 -DWITH_DEBUG = ON|OFF  指定编译debug版本还是release版本

4.4.2 指定gcc编译参数,例如:“-O3 -g -DNDEBUG”

-DCMAKE_CXX_FLAGS  可以指定C代码参数

-DCMAKE_C_FLAGS  指定C++代码参数

-DCMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUG

-DCMAKE_CXX_FLAGS_RELEASE

4.5 指定编译器

-DCMAKE_C_COMPILER = /usr/bin/gcc

-DCMAKE_CXX_COMPILER = /usr/bin/c++

4.6 关于cmake的详细介绍,请参考 https://www.cnblogs.com/hllnj2008/p/4043778.html

4.7 编译脚本举例(shell脚本)

#!/bin/shbase_path=/usr/local/src/mysqlcmake .
-DCMAKE_INSTALL_PREFIX = /usr/local/src/mysql  \
-DMYSQL_DATADIR = /usr/local/src/mysql/var  \
-DINSTALL_SBINDIR = libexec  \
-DINSTALL_LIBDIR = lib/mysql  \
-DSYSCONFDIR = /usr/local/src/mysql/etc  \
-DMYSQL_UNIX_ADDR = /usr/local/src/mysql/tmp/mysql.sock  \
-DINSTALL_SCRIPTDIR = bin  \
-DINSTALL_MYSQLSHAREDIR = share  \
-DINSTALL_SUPPORTFILEDIR = share/mysql  \
-DWITH_EXTRA_CHARSETS = all   \
-DWITH_DEBUG = 0   \
-DWITH_PERFSCHEMA_STORAGE_ENGINE = 1  \
-DWITH_INNODB_MEMCACHED = 1  \
-DWITH_MYISAM_STORAGE_ENGINE = 1  \
-DWITH_INNOBASE_STORAGE_ENGINE = 1  \
-DWITH_PARTITION_STORAGE_ENGINE = 1  \
-DENABLED_PROFILING = 0  \
-DCMAKE_C_FLAGS = "-O3"  \
-DCMAKE_CXX_FLAGS = "-O3"  \
-DCMAKE_C_FLAGS_RELEASE = "-O3"  \
-DCMAKE_CXX_FLAGS_RELEASE = "-O3"  \make -j  24make  install#create etc,log,tmp,var

五、执行编译 make -j N(N为线程数,一般为服务器中CPU的个数)

六、安装编译产出物 make install

七、创建目录 etc  log  var  tmp

八、创建配置文件 etc/my.cnf

九、安装系统表 ./bin/mysql_install_db

十、登录数据库并执行操作

源码安装MySQL步骤相关推荐

  1. linux怎么用源码安装mysql,Linux源码安装mysql步骤

    创建文件夹: mkdir  /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...

  2. l源码安装mysql升级_[Linux]javaEE篇:源码安装mysql

    javaEE :源码安装mysql 安装环境 系统平台:CentOS-7-x86_64 数据库版本:mysql-5.6.14 源码安装mysql步骤: 一.卸载mysql 安装mysql之前,先确保l ...

  3. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  4. php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备

    一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...

  5. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

  6. centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x

    会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧. 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存 ...

  7. 源码安装mysql 5.1_Linux环境下源码编译安装MySQL5.1

    1.源码安装MySQL 5.1 GA 创建组和用户: [root@mysqldb2 ~]# groupadd mysql [root@mysqldb2 ~]# useradd -g mysql mys ...

  8. CentOS 7中源码安装MySQL 5.7.16 ----已测试验证

    最近在CentOS 7中源码安装MySQL 5.7.6+,发现MySQL5.7.6+以后的安装方式真的与以前版本的MySQL安装方式大大的不同呀.不自己安装一把,你都不知道不同之处在哪,下面这篇文章是 ...

  9. mysql 安装_源码安装mysql

    源码安装mysql 什么是源码 #! /bin/bash echo 'hello'高级语言 ➡️机器码01001001 源码安装mysql逻辑 1.源码包 ⬇ 2.预编译 1.检查当前的操作系统. 2 ...

  10. dockerfile源码安装mysql_docker容器详解五: dockerfile实现tomcat环境以及源码安装mysql...

    tomcat 上一节讲到了dockerfile的基础,这一次咱们来作一个小的练习 首先要了解tomcat安装的整个过程 首先搭建 jdk环境: 下载jdk包,解压以后添加环境变量 而后搭建tomcat ...

最新文章

  1. 微信小程序获取多选框选中值和选中值对应的id
  2. 【UVA】10152 ShellSort (几只乌龟的故事)
  3. Loj #3111. 「SDOI2019」染色
  4. IT接口——Micro USB带来的市场影响力
  5. oracle级联赋权,Oracle 级联with admin option 和 with grant option
  6. 蓝桥杯 ADV-15算法提高 最大乘积
  7. C++内存分配方式、内存错误及其对策
  8. python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
  9. linux菜鸟要飞-根目录
  10. Day01_FAT12 文件系统
  11. 中职学校实验室安全整改总结报告
  12. java要学多久_学会JAVA需要多长时间?
  13. echarts上加横线标线_Echarts地图添加引导线效果(labelLine)
  14. matlab多项式计算题目,MATLAB数据分析与多项式计算-习题答案
  15. css 文本超出就隐藏并且显示省略号
  16. 一分钟了解自动化测试 1
  17. VC++中的WinMain()函数介绍
  18. JAVA - 学习记录第八天
  19. Hackcity 参赛必读
  20. Android快速SDK(1)基础工具库QuickBase

热门文章

  1. 《统计学习方法》——朴素贝叶斯法
  2. SpringCloud Eureka 高可用
  3. 详解云安全攻防模型,这些攻击战略和战术越早知道越好!
  4. 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(二)
  5. 《我也能做CTO之程序员职业规划》和《.NET软件设计新思维——像搭积木一样搭建软件》新书发布会 回顾
  6. 全面规范的软件需求可以规避项目风险
  7. 4. tensorflow2实现抽样分布—卡方分布、F分布、t分布、Beta分布、Gamma分布——python实战
  8. matplotlib绘图基础
  9. This program requires version 3.4.0 of the Protocol Buffer runtime library
  10. ftp服务器多用文件夹权限,自己动手搭建隔离用户的FTP服务器之权限分配(二)...