ppc下编译安装mysql5.7

原创
2017/12/22 22:32
阅读数 658

ppc下编译mysql

  1. 编译说明

    1. oracle未提供二进制的mysql安装包,因此需要自行编译安装
    2. ppc分为le和be,就是little endian 和 big endian的区别。安装时需要注意,看操作系统的不同而不同。其中:
      • redhat6只有le
      • ubuntu不区分le和be
      • 本文将以redhat7.2编译安装为例
  2. 安装环境依赖

    1. 交叉编译环境

      ppc程序允许在x86构架下编译ppc的应用程序。需要安装ibm的advance-toolechain(包含gcc等工具)

    2. 安装advince-toolchan

      1. advince-toolchan安装包下载路径

        ftp://ftp.unicamp.br/pub/linuxpatch/toolchain/at/redhat/RHEL7/at10.0 ftp://ftp.unicamp.br/pub/linuxpatch/toolchain/at/redhat/RHEL6/at9.0

      2. advince-toolchan文档 https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W51a7ffcf4dfd_4b40_9d82_446ebc23c550/page/IBM%20Advance%20Toolchain%20for%20PowerLinux%20Documentation

      3. 相关依赖包(注意cpu构架,安装注意相关依赖包的依赖)

        • cmake
        • bison
        • glibc
        • perl
        • glibc
        • ncurses
        • ncurses-devel
        • ncurses-libs
        • libaio
        • libaio-devel
        • numactl-devel
        • openssl-devel
        • zlib-devel

        依赖包可以通过以下路径下载 https://mirror.stjschools.org/public/centos-altarch/7/os/ppc64le/Packages/

      4. advance-toolchain关键依赖列表(以at10.0为例,注意,runtime-需要先安装)

        • advance-toolchain-at10.0-devel-10.0-1.ppc64le.rpm
        • advance-toolchain-at10.0-perf-10.0-1.ppc64le.rpm
        • advance-toolchain-at10.0-mcore-libs-10.0-1.ppc64le.rpm
        • advance-toolchain-at10.0-runtime-10.0-1.ppc64le.rpm
  3. 安装环境准备

    1. 停止和删除旧mysql、mariadb

      ps  -ef  |grep mysql
      ps  -ef  |grep mariadb
      rpm -qa  |grep mysql
      rpm -qa  |grep mariadb
      rpm -e mariadb-libs-5.5.44-2.el7.ppc64le --nodeps
      
    2. 调整cpufreq(动态调整cpu频率的模块)

      将cpufreq设置为performance

      cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
      performance
      
    3. 编译前系统优化

      cat  >>/etc/security/limits.conf<<EOF
      mysqld soft nofile  unlimited 
      mysqld hard nofile  unlimited 
      mysqld soft nproc   unlimited 
      mysqld hard nproc   unlimited
      mysqld soft memlock  unlimited
      mysqld hard memlock  unlimited
      EOF
      
      sysctl -w vm.swappiness=5
      sysctl -a |grep keepalive
      sysctl -w net.ipv4.tcp_keepalive_intvl = 75
      sysctl -w net.ipv4.tcp_keepalive_probes = 9
      sysctl -w net.ipv4.tcp_keepalive_time = 7200
      sysctl -w net.ipv4.tcp_tw_recycle = 1
      sysctl -w net.ipv4.tcp_tw_reuse = 1
      
      cat  >>/usr/lib/sysctl.d/00-system.conf<<EOF
      net.ipv4.tcp_keepalive_intvl = 75
      net.ipv4.tcp_keepalive_probes = 9
      net.ipv4.tcp_keepalive_time = 7200
      net.ipv4.tcp_tw_recycle = 1
      net.ipv4.tcp_tw_reuse = 1
      EOF
      
      sysctl -p
      
    4. 创建mysql用户和用户组

      mkdir -p /home/mysql
      groupadd -g 502 mysql
      useradd -u 502 -r -g mysql mysql
      passwd mysql
      
    5. 创建mysql相关目录

      #mysql安装目录
      mkdir -p /opt/mysql
      #mysql数据目录
      mkdir -p /data/mysql/data
      #mysql的lib目录
      mkdir -p /var/lib/mysql
      #binlog目录
      mkdir -p /data/mysql/binlog
      #修改目录权限,注意后续新增文件也需要刷新目录的权限
      chown -R mysql:mysql /data/mysql
      chown -R mysql:mysql /var/lib/mysql 
      
  4. 编译安装

    1. 获取mysql源代码

      https://dev.mysql.com/downloads/mysql/下载通用linux版本的源代码 注意需要包含boost header的版本 如mysql-boost-5.7.18.tar.gz 解压相关目录

    2. 设置gcc和g++路径

      安装advance-toolchain后,需要设置gcc路径,是的cmake能正常执行 相关路径参考如下配置,注意advance-toolchain实际安装路径

      CMAKE_PREFIX_PATH=/opt/at10.0/
      PATH=$PATH:/opt/at10.0/bin:/opt/at10.0/sbin
      
    3. 使用cmkae生产makefile

      注意如果出现错误,需要删除目录下缓存文件 rm -rf CMakeCache.txt

      实际执行过程中需要注意相关路径

      cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql                 \
      -DMYSQL_DATADIR=/data/mysql/data                          \
      -DSYSCONFDIR=/data/mysql                                  \
      -DWITH_INNOBAASE_STORAGE_ENGINE=1                         \
      -DWITH_ARCHIVE_STORAGE_ENGINE=1                           \
      -DWITH_BLACKHOLE_STORAGE_ENGINE=1                         \
      -DMYSQL_UNIX_ADDR=/opt/mysql/mysql.sock                   \
      -DEFAULT_CHARSET=utf8                                     \
      -DEFAULT_COLLATION=utf8_general_ci                        \
      -DENABLE_PROFILING=1                                      \
      -DWITH_BOOST=/home/app/mysql-5.7.18/boost/boost_1_59_0
      
    4. make

      执行make,此过程时间较长

      make
      
    5. make install

      此过程时间较短,执行完成后mysql编译安装完成

      make install
      
  5. post-installation

    1. 添加path(请根据实际安装路径添加)

      echo "export PATH=$PATH:/ope/mysql/bin" >  /etc/profile.d/mysql.
      chmod 777  /etc/profile.d/mysql.sh
      source /etc/profile
      
    2. 修改mysql安装目录的权限

      chown -R mysql:mysql /opt/mysql
      
    3. 创建my.cnf

      根据实际情况创建mysql配置文件,注意目录。

      [client]
      port=3306
      socket=/data/mysql/mysql.sock
      [mysqld]
      innodb_buffer_pool_size=128M
      basedir=/opt/mysql
      datadir=/data/mysql/data
      port=3306
      socket=/data/mysql/mysql.sock
      character-set-server=utf8
      user=mysql
      log-error=/data/mysql/mysql_error.log
      slow_query_log
      slow_query_log_file=/data/mysql/slow.log
      [mysqld_safe]
      open-files-limit=8192
      log-error=/data/mysql/mysql_safe.err
      pid-file=/data/mysql/mysqld.pid
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      
    4. 初始化数据库

      /opt/mysql/bin/mysqld --defaults-file=/data/mysql/my.cnf  --initialize --user=mysql
      
    5. 安装mysqlssl

      /opt/mysql/bin/mysql_ssl_rsa_setup
      
    6. 安装mysqld服务

      cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
      chmod +x /etc/init.d/mysqld
      chkconfig --add mysqld
      chkconfig mysqld on
      
    7. 启动mysql

      启动前注意mysql以及数据库文件的权限,如果所属用户和用户组不是mysql,请自行修改

      service mysqld start
      
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部