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. Opencv笔记(十三)——图像的梯度

    目标 认识图像梯度.边界 学习函数cv2.Sobel(),cv2.Schar(),cv2.Laplacian() 原理 图像梯度可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导.Op ...

  2. Codeforces Round #556(Div.1)

    A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...

  3. postgreSQL命令大全(更新中)

    1.PostgreSQL索引的建立https://blog.csdn.net/jubaoquan/article/details/78850899: 2.PostgreSQL9中索引的原理和效率查询h ...

  4. 十一、linux-mysql的多种日志和引擎文件实战

    一.多种日志 mysql生成或者相关联的日志文件种类繁多,本节重点关注与mysql数据库服务相关的几类日志文件. 错误日志(error  log) :记录mysql服务进程mysqld在启动/关闭或者 ...

  5. ExecuteScalar()方法的使用

    ExecuteScalar()方法的作用是: 执行查询,并返回查询所返回的结果集中第一行的第一列.所有其他的列和行将被忽略. 1.返回的是一个object类型,也就是说是所有数据类型的基类,可根据se ...

  6. HihoCode-1053-居民迁移

    解法: 一开始不会做,看到标签说是贪心加二分忽然就会了,二分是分的是人口最多居住点的人口,检查人口最多的居住点人口为mid是否可行.贪心是如果从左往右循环就尽量把人口往左迁移,如果从右往左循环就尽量把 ...

  7. 求求你,下次面试别再问我什么是 Spring AOP 和代理了!

    https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9403056301388627935% ...

  8. [LC] 129. Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  9. Spring MVC及与structs MVC对比

    一.Spring MVC MVC: Model + View + Controller(数据模型+视图+控制器) 三层架构: Presentation tier + Application tier ...

  10. timber|stain|compensate|

    N-UNCOUNT 木材;原木;树木:林木Timber is wood that is used for building houses and making furniture. You can a ...