题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢!

如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴

环境:
  OS: CentOS 6.6x64 mini
  mysql: mysql-5.6.25
1. mysql 下载:
  http://dev.mysql.com/downloads/mysql/
  说明:这个网站有时候JS被墙,你选择了Source Code会没有反应,所以可以考虑翻翻翻翻翻翻Q或者直接点下边的链接
  下载地址: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz

2.安装:

  ☆ 禁掉selinx

    ★ 使用下边命令获取selinux:      

[root@centos ~]# getenforce
Disabled

         Disabled 已经禁用了,可以跳过这步了

         Enforcing 开启状态

         Permissive 临时禁用

    ★ 使用下边命令禁用selinux (第一条临时禁用,第二条永久禁用)     

[root@centos ~]# setenforce
[root@centos ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

    ★ 检查下是否修改正确

[root@centos ~]# getenforce
Permissive
[root@centos ~]# cat /etc/selinux/config

        确认里边 SELINUX=disabled  (selinux配置文件一定要确保修改正确,如果错误系统就无法正常启动.)

  ☆ 创建mysql账户  

groupadd mysql
useradd -g mysql mysql

  ☆ 依赖包 

yum install cmake wget  gcc  -y

        Cmake: 因为mysql 5.6支持cmake安装所以我们采用cmake安装.

        wget是linux下载工具,下边就是下载mysql源码包(下载到当前目录下) 

[root@centos ~]# wget http://101.44.1.118/files/90110000038859AB/nchc.dl.sourceforge.net/project/mysql.mirror/MySQL%205.6.25/mysql-5.6.25.tar.gz

  ☆ 解压mysql源码包,并进入到解压目录        

[root@centos ~]# tar xvf  mysql-5.6..tar.gz
[root@centos ~]# cd mysql-5.6.

  ☆ 配置        

 cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_MEMORY_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT= \
-DENABLED_LOCAL_INFILE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

          -DCMAKE_INSTALL_PREFIX= 指向mysql安装目录(安装在哪里)

          -DMYSQL_DATADIR= mysql的数据目录

          -DSYSCONFDIR= Mysql的配置文件(配置文件放哪里)

          这里配置会出错,请移步后边的废话部分,带你装逼带你飞..

          

  ☆  编译并安装(过程比较长,耐心等待)        

make
make install

         在群里发现很多人在编译的时候容易出错,而且配置编译完了也不能确定到底有没有操作成功.虽然下文我有解释,但是我还是要提一下linux下有个$?.. 执行完了不确定紧接着执行:echo $?

         如果返回 0 说明上条命令执行成功,非0的任意数代表有错误.

  ☆  配置Mysql

    ★ 进入到mysql的安装目录

[root@centos ~]#cd /usr/local/mysql

    ★ 设置权限    

chown -R mysql .
chgrp -R mysql .

★ 初始化数据库

scripts/mysql_install_db --user=mysql

★ 设置权限

chown -R root .
chown -R mysql data

★ 启动数据库

bin/mysqld_safe --user=mysql &

    很多朋友会说写个mysql的启动脚本,干嘛要自己写,mysql已经提供了:

cp support-files/mysql.server /etc/init.d/mysql.server

这样就可以了 service mysql.server start

☆ 修改$PATH

  $PATH是什么?很多人都不清楚,到底做什么的?这里简短的说一下,$PATH就是执行文件路径的变量,当我们执行一个指令的时候,[mysql],系统会依据PATH的设定去每个PATH定义的目录下搜寻文件名为mysql的可执行文件.如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件, 那么先搜寻到的同名文件先被执行!

  [root@centos ~]#which mysql

  /usr/bin/which: no mysql in()

  没有找到这个mysql从哪里找就是从PATH加载的这么多目录里边去找.  

[root@centos ~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    这个是系统定义好的PATH目录:  

[root@centos ~]#sed -i  '/export PATH/i\\PATH=$PATH:/usr/local/mysql/bin' .bash_profile
[root@centos ~]#source .bash_profile 

    直接将/usr/local/mysql/bin追加到PATH后边,我使用sed,为了新手,如果你用vi可以自行编辑..

    这样就可以使用mysql

    [root@centos ~]#which mysql

    /usr/local/mysql/bin/mysql

3.废话篇:

  教程篇,就得有废话...废话开始:

  源码的安装就在编译这里,配置编译,配置什么?怎么配置?如何获取,最好的方法就是官方文档,配置就是扩展一些功能,官方文档有解释每一个配置项的作用和默认是否被配置进去.还有就是源码包里有个INstall-Source.txt.写的很详细有几千行,在5000多行的地方<2.9 Installing MySQL from Source>有说如何安装...

  配置是配置,编译是编译.安装是安装. 配置是用的cmake,编译是make..安装是make install.得确保每一步操作成功,进行下一步操作,怎么确认?看配置结束的提示,或者配置结束完紧接着输入echo $? 如果返回0 就说明操作成功了,非零就是有问题.

  编译不一定能保证100%不出问题,教程贴就是教你改怎么编译,说一些自己的心得.其他的错误就得靠经验了,没有办法把整个错误都列出来.

  如果你按我操作的步骤肯定编译会出错:

    错误信息的部分:

      CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.

      CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

    其实看出来是C的问题了,C是干嘛的?这个就要增加自己的知识储备了,如果不确定自己复制百度下,多看看解决方法: 

yum install gcc -y

    再来(再次执行CMake),装完发现第二个Cxx的报错没有解决.那就是C++的问题了   

yum install gcc-c++

    再执行,发现上边的错误没有了,但是又有新的错误了

    关键字:no suitable type found 百度百度   

yum install ncurses-devel

    问题没解决,后来发现是删除CMakeCache.txt 巨汗...

    rm -rf CMakeCache.txt

    重新执行Cmake的命令

    编译慢慢等..

    中间有很多 found, not found

    就是说有些依赖找到了,有些依赖没有被找到.如果没有报错说明都不是致命的错误,可以以后某些功能没装上(没有装上怎么不办?重新配置编译安装加上自己需要的功能,这些功能需要装什么可以看官方文档,或者网上找找..)

接下来编译:

make

    安装:    

make install

  确定执行成功,返回到配置Mysql,接着配置Mysql

    好了到这里了,有什么错误的地方,有什么问题可以提出来...

  顺便贴上网上找到配置项的解释:

  

-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录
-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin 指向插件目录(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man 指向man文档目录(prefix/share/man)
-DINSTALL_SHAREDIR=share 指向aclocal/mysql.m4安装目录(prefix/share)
-DINSTALL_LIBDIR=lib/mysql 指向对象代码库目录(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql 指向头文件目录(prefix/include/mysql)
-DINSTALL_INFODIR=share/info 指向info文档存放目录(prefix/share/info)
prefix官方推荐设为/usr
Storage Engine相关
类型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想启用某个引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某个引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
Library相关
-DWITH_READLINE=1 启用readline库支持(提供可编辑的命令行)
-DWITH_SSL=system 启用ssl库支持(安全套接层)
-DWITH_ZLIB=system 启用libz库支持(zib、gzib相关)
-DWTIH_LIBWRAP=0 禁用libwrap库(实现了通用TCP包装的功能,为网络服务守护进程使用)
-DMYSQL_TCP_PORT=3306 指定TCP端口为3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 指定mysql.sock路径
-DENABLED_LOCAL_INFILE=1 启用本地数据导入支持
-DEXTRA_CHARSETS=all 启用额外的字符集类型(默认为all)
-DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci 设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
-DWITH_EMBEDDED_SERVER=1 编译嵌入式服务器支持
-DMYSQL_USER=mysql 指定mysql用户(默认为mysql)
-DWITH_DEBUG=0 禁用debug(默认为禁用)
-DENABLE_PROFILING=0 禁用Profiling分析(默认为开启)
-DWITH_COMMENT='string' 一个关于编译环境的描述性注释

Mysql 源码编译教程贴的更多相关文章

  1. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  2. MySQL源码编译与初始化

    MySQL源码编译与初始化 链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ 提取码:ekpy 复制这段内容后打开百度网盘手机App,操作更方便哦 ...

  3. ubuntu下mysql源码编译安装

    建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...

  4. mysql源码编译安装

    首先去官网http://dev.mysql.com/downloads/mysql/ 下载mysql源码.我下的是5.7.10 源码选择的是 Generic Linux (Architecture I ...

  5. Mysql源码编译安装&主从复制

    一)camke源码编译安装mysql 1)创建软件安装目录software [root@master software]# ls cmake-2.8.8.tar.gz mysql-5.5.32.tar ...

  6. MySQL 源码编译安装

    脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以 ...

  7. 独一无二 hortonworks spark 源码编译教程

    hortonworks的源码在github上能找到! https://github.com/hortonworks/spark2-release 找到对应版本release源码后下载到本地 在wind ...

  8. Ogre源码编译教程

    最近突然发现Ogre引擎更新到2.1版本了,既然依旧是代码开源,本着学习的精神就下载下来弄弄.但是官网提供的SDK版本只有1.9的,考虑到学习的便利性,因此最好从Source版本开始弄,这样的话以后想 ...

  9. hadoop 2.7.3 源码编译教程

    1.工具准备,最靠谱的是hadoop说明文档里要求具备的那些工具. 到hadoop官网,点击source下载hadoop-2.7.3-src.tar.gz. 解压之 tar -zxvf hadoop- ...

随机推荐

  1. 一键源码安装Ansible

    #!/bin/bash # @Name:install_ansible.sh # @Author:Eivllom # @Create -- # @Modify -- app_soft="/a ...

  2. server 2008 ftp 环境重点说明

    最近 在弄ftp  环境,但是 到server 2008 r2  这个系统之后,按照之前的方法 不行了 具体情况如下 利用本机 资源管理器 访问不了,根本不出现 登录框 提示 然后 到ftp  站点 ...

  3. HDOJ(HDU) 2164 Rock, Paper, or Scissors?

    Problem Description Rock, Paper, Scissors is a two player game, where each player simultaneously cho ...

  4. HDOJ 2026 首字母变大写

    Problem Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Outpu ...

  5. 数据结构——UVA 1600 机器人巡逻

    描述 A robot has to patrol around a rectangular area which is in a form of mxn grid (m rows and n colu ...

  6. Geometric Shapes (poj3449多边形相交)

    题意:给你一些多边形的点,判断每个多边形和那些多边形相交,编号按照字典序输出 思路:枚举每个多边形的每条边看是否相交,这里的相交是包括端点的,关键是给你正方形不相邻两个点求另外两个点怎么求,长方形给你 ...

  7. Azkaban2配置过程

    Azkaban2配置过程 azkaban2所需环境:jdk1.6.ant.jetty.hadoop.ssl证书 通过http://azkaban.github.io/azkaban2/download ...

  8. 谈一下spring 的理解

    spring,大家基本都在使用,两个核心: 声明式事务AOP : 控制反转依赖注入IOC: 以前对控制反转和依赖注入很模糊,现在大概理解了意思,控制反转,有spring容易来控制bean 的创建,我们 ...

  9. Gridview导出到Excel

    #region #导出到Excel     protected void Button2_Click(object sender, EventArgs e)     {         Respons ...

  10. NDN路由--OSPFN安装与配置

    现在的IP网络的问题已经暴露的很多了,各种改进的网络架构与设想非常多,但其中以基于内容为中心的网络发展最为迅速,其中,NDN的架构最为完整,代码也比较成熟.OSPFN是基于CCNX的,所以之前要安装C ...