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. 关于XML的一些总结

    xml的知识结构图 eXtensible Markup Language,可扩展标记语言,简称XML,和HTML比较而言,语法相似,作用不同 XML被设计用来存储和传输数据,但存储数据方面,数据库是主 ...

  2. zabbix server in not running

    修改配置文件 vi zabbix.conf.php 修改lochlhost为 自己服务器的IP地址 修改$DB['SERVER']   = '192.168.30.6'; 修改$ZBX_SERVER  ...

  3. 新年在家学java之基础篇--循环&数组

    因为“野味肺炎”的肆虐,过年被迫宅家只能吃了睡.睡了吃.这么下次只能长膘脑子空空,不如趁此机会重新学习java基础,为日后做铺垫~ 循环结构: 几种循环:for(::),while(){},do{}w ...

  4. springboot 整合thymeleaf 书笔记

    pom.xml依赖添加 <!--引入thymeleaf--> <dependency> <groupId>org.springframework.boot</ ...

  5. dns bind记录

    自建DNS服务, 使用的工具是bind, 当然也有其他更轻量的工具 yum -y install bind /etc/named.conf 监听端口和ip修改 默认监听127.0.0.1 其他机器无法 ...

  6. Vue创建项目及基本语法 一

    目录 目录: 一.创建Vue项目 0.使用环境要求及说明 1.使用命令创建项目 2.启动项目 二.简单指令 1.变量: 2.动态绑定变量值 3.v-once指令 4.v-html解析html 5.v- ...

  7. mongo rename collection

    db.getCollection('a').renameCollection("b"); db.getCollection('a').find({}, {_id: 0}).forE ...

  8. http协议和网络模型

    传输层    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输. 在传输层有两个性质不同的协议:TCP(Transmission ControlProtocol,传输控制协议)和 UD ...

  9. C语言数据类型char

    char简介 char是C/C++中的基本数据类型,可容纳单个字符的一种基本数据类型. char占一个字节,也就是8个bit(二进制位),0000 0000 ~ 1111 1111,在无符号类型时ch ...

  10. Java捕获并处理线程失败抛出的异常

    使用 UncaughtExceptionHandler 示例代码如下: Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExc ...