MySQL 5.7.19 源码安装

  1. 查看系统:

    # cat /etc/redhat-release
    CentOS Linux release 7.3.1611 (Core)
  2. 安装依赖包
    # yum -y install ncurses-devel libaio-devel cmake gcc gcc-c++ bison perl-Time-HiRes
  3. 下载安装boost 下载, 解压 mysql
    1. 下载包

      # wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz  
    2. 解压

      # tar xf boost_1_59_0.tar.gz 
    3. 将boost 的包放到 /usr/local/boost 下

      # mv boost_1_59_0 /usr/local/boost 
    4. 创建 mysql 账号
      # useradd -s /sbin/nologin -M mysql
      
      验证
      # id mysql

  4. 安装 mysql
    1. 下载, 解压 MYsql 源码包

      # mkdir /root/tools
      # cd /root/tools
      # wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
      # wget : 下载 MySQL 5.7.19 源码包
      # tar xf mysql-5.7.19.tar.gz
    2. cmake 解压与设置 msyql
      cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.19 \
      -DMYSQL_DATADIR=/application/mysql-5.7.19/data \
      -DMYSQL_UNIX_ADDR=/application/mysql-5.7.19/tmp/mysql.sock \
      -DDEFAULT_CHARSET=utf8 \
      -DDEFAULT_COLLATION=utf8_general_ci \
      -DWITH_EXTRA_CHARSETS=all \
      -DWITH_INNOBASE_STORAGE_ENGINE=1 \
      -DWITH_FEDERATED_STORAGE_ENGINE=1 \
      -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
      -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
      -DWITH_ZLIB=bundled \
      -DWITH_SSL=bundled \
      -DENABLED_LOCAL_INFILE=1 \
      -DWITH_EMBEDDED_SERVER=1 \
      -DENABLE_DOWNLOADS=1 \
      -DWITH_DEBUG=0 \
      -DWITH_BOOST=/usr/local/boost/
    3. 编译安装

      # grep processor /proc/cpuinfo|wc -l # 查看本机 CPU 虚拟核数
      # make -j 6 && make install
              -j : 使用 6个CPU线程进行编译解压, 越多编译快,
          测试结果 只用 1 CPU 编译 1个多小时, 使用6 个后 不到10分钟
  5. 配置mysql
    1. 设置软连接

      #  ln -s /application/mysql-5.7.19/ /application/mysql
    2. 修改配置文件

      # cat /etc/my.cnf 
      # mysql config file
      [mysqld]
      # datadir=/application/mysql/data
      # socket=/application/mysql/tmp/mysql.sock
      # skip-grant-tables
      symbolic-links=0 [mysqld_safe]
      log-error=/var/log/mysqld.log
      pid-file=/application/mysql/mysqld.pid
  6. 初始化数据库

    1. 创建目录 /application/mysql-5.7.19/tmp 存放 mysql.sock

      # mkdir /application/mysql-5.7.19/tmp
    2. 将 /application/ 下的所有文件 用户付给 mysql 用户

      # chown -R mysql.mysql /application/mysql*
    3. 设置环境变量

      # echo 'PATH=$PATH:/application/mysql/bin/' >>/etc/profile
      # source /etc/profile
    4. 配置启动文件

      # cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld 
    5. 初始化数据库

      # mysqld --initialize-insecure --user=mysql --basedir=/application/mysql/ --datadir=/application/mysql/data 
  7. 启动 mysql
    1. 启动

      # /etc/init.d/mysqld start
      # netstat -lntup |grep 330
    2. 设置开启启动

      # chkconfig mysqld on
      # chkconfig mysqld --list
  8. CMAKE 选项解释
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //MySQL安装的根目录
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock   //指定mysql.sock位置
    -DMYSQL_DATADIR=/data                 //MySQL数据库文件存放目录
    -DSYSCONFDIR=/etc                   //MySQL配置文件所在目录
    -DWITH_MYISAM_STORAGE_ENGINE=1           //添加MYISAM引擎
    -DWITH_INNOBASE_STORAGE_ENGINE=1           //添加InnoDB引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE=1           //添加ARCHIVE引擎
    -DWITH_FEDERATED_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1        //支持数据库分区
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
    -DWITH_READLINE=ON
    -DCOMPILATION_COMMENT='Zhaofx for mysqltest'  //
    -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库所在目录
    -DWITH_EXTRA_CHARSETS=all
    -DWITH_ZLIB=bundled
    -DWITH_SSL=bundled
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DENABLED_LOCAL_INFILE=1
    -DWITH_EMBEDDED_SERVER=1
    -DENABLE_DOWNLOADS=1
    -DWITH_DEBUG=0

MySQL学习之路 一 : MySQL 5.7.19 源码安装的更多相关文章

  1. ExtJS学习之路第四步:看源码,实战MessageBox

    可以通过看MessageBox.js的源码来深入认识,记住它的主要用法.Ext.MessageBox是实用类,用于生成不同风格的消息框,它是Singleton(单例),别名Ext.Msg.注意Mess ...

  2. MySQL学习之路(一)——初涉MySQL。

    MySQL学习之路(一) 1.1MySQL的概述 MySQL由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一个开源的关系型数据库管理系统. MySQL分为社区版和企业版. 1 ...

  3. MySQL学习(一)——Java连接MySql数据库

    MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...

  4. linux源码安装mysql,shell编程学习,ubuntu

    一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...

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

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

  6. Linux MySQL源码安装缺少ncurses-devel包

    在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and ...

  7. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  8. mysql 在cento下源码安装

    虚拟机改为网络地址转换 (NAT) service network restartping www.baidu.com rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm ...

  9. CentOS 7下源码安装MySQL 5.6

    本文转载,并非原创. 目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启 ...

随机推荐

  1. Django与AJAX-choice字段-MTV和MVC模型-sweetalert搭建页面

    Django中的choice字段 应用的场景: 用户信息举列:如用户性别.婚否.学历.工作状态等可以列举出来供选择的信息 书写models创建表模型: 数据的获取和查询: 总结: "&quo ...

  2. sqlite如何避免重复建表(获取已经存在的表)

    找到已经存在的所有表,手动判断是否需要建表 SELECT name FROM SQLITE_MASTER WHERE type='table'ORDER BY name" 建表时sqlite ...

  3. ASA5505升级license

    1.准备工作 首先先看下目前的license # show activation-key Serial Number: JMX1J364741 Running Permanent Activation ...

  4. Android library 传入本地maven仓库

    在项目根目录gradle.properties 添加 #包信息 GROUP_ID = com.chao.myvideo # Licence信息 PROJ_LICENCE_NAME=The Apache ...

  5. 金山wps的面试经历

    故事从两个月前开始说起吧. 前段时间突然想跳槽,原因也没啥,就是想折腾下,看看外面的世界?有一部分原因是想离家近一些稳定下来,博主上份工作坐标厦门,风景好的简直随便拍照就是大片. 不废话了,机缘巧合, ...

  6. python学习笔记(13)常用模块列表总结

    os模块: os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作 ...

  7. yaml文件的格式

    后缀为.yml    格式一般就是key:空格 value    这里的value可以是 普通数据(数字,字符串)   ---------------------------------------- ...

  8. NIO与IO

    待续... 该文章部分摘自:http://tutorials.jenkov.com/java-nio/index.html 一.I/O简介 I/O(英语:Input/Output),即输入/输出, 指 ...

  9. LeetCode No.73,74,75

    No.73 SetZeroes 矩阵置零 题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 输入: [   [1,1,1],   [ ...

  10. django框架进阶-AJAX-长期维护

    ##################   预备知识---json     ####################### 预备知识,json 什么是json?这是一种数据格式,和语言没有关系, 为什么 ...