zoukankan      html  css  js  c++  java
  • CentOS 7 源码编译MariaDB

    下载源码包

     

    安装 SCL  devtoolset-7

    SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。SCL为社区的以下需求而设计:创建和使用软件集合生产系统、概念验证系统、开发测试平台。SCL目前已经支持Fedora和RHEL(衍生版本如CentOS也包含在内)

    SCL的创建就是为了给RHEL/CentOS用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。与之相对的是第三方源,它们可能会在已安装的包之间引起冲突

    某些软件在其上会编译不过,自己编译高版本的 gcc 可能也会遇到一些问题,比较麻烦。但有一个第三方库可以解决这个问题,即 devtoolset devtoolset 有很多版本,例如 devtoolset-2(gcc-4.8.2)、devtoolset-3(gcc-4.9.2)、devtoolset-4(gcc-5.2.1)。

    MariaDB 编译 TokuDB 引擎时会用到 C++11 标准,系统里 GCC 最高版本 4.8.5 是支持 C++11 标准的,可就算指定了 -DCMAKE_CXX_FLAGS=-std=c++11 也不行。手动编译更高版本的 GCC 又太麻烦,这里直接安装了 devtoolset-7,当然你禁用 TokuDB 引擎也无可厚非

    [root@sql1 ~]# yum -y install centos-release-scl devtoolset-7
    
    [root@sql1 ~]# gcc --version
    gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
    Copyright © 2015 Free Software Foundation, Inc.
    本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
    包括没有适销性和某一专用目的下的适用性担保。
    
    [root@sql1
    ~]# scl enable devtoolset-7 bash [root@sql1 ~]# gcc --version gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                                                      

    安装依赖包

    # 安装依赖包
    [root@sql1 ~]# yum install -y gnutls-devel gcc gcc-c++ cmake ncurses-devel bison-devel bison libaio-devel libevent libxml2-devel
    # 创建mysql用户和组
    [root@sql1 ~]# useradd -M -s /sbin/nologin mysql
    # 创建数据库数据存放目录
    [root@sql1 ~]# mkdir /mydata/mariadb/ -p
    [root@sql1 ~]# chown -R mysql.mysql  /mydata
    # 解压、编译、安装mariadb
    [root@sql1 ~]# tar xf tar mariadb-10.3.8.tar.gz -C /usr/src/
    [root@sqll ~]# cd /usr/src/mmariadb-10.3.8/
    [root@sqll mariadb-10.3.8]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
         -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  \
         -DMYSQL_DATADIR=/mydata/mariadb  \
         -DSYSCONFDIR=/etc  \
         -DMYSQL_USER=mysql  \
         -DMYSQL_TCP_PORT=3306  \
         -DWITH_XTRADB_STORAGE_ENGINE=1  \
         -DWITH_INNOBASE_STORAGE_ENGINE=1  \
         -DWITH_PARTITION_STORAGE_ENGINE=1  \
         -DWITH_BLACKHOLE_STORAGE_ENGINE=1  \
         -DWITH_MYISAM_STORAGE_ENGINE=1  \
         -DWITH_READLINE=1  \
         -DENABLED_LOCAL_INFILE=1  \
         -DWITH_EXTRA_CHARSETS=all  \
         -DDEFAULT_CHARSET=utf8  \
         -DDEFAULT_COLLATION=utf8_general_ci  \
         -DEXTRA_CHARSETS=all  \
         -DWITH_BIG_TABLES=1  \
         -DWITH_DEBUG=0 \
     && make -j4 && make -j4 install

    初始化安装数据库

    [root@sql1 mariadb-10.3.8]# cd /usr/local/mysql/
    [root@sql1 mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/  --datadir=/mydata/mariadb/
    [root@sql1 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mariadb
    [root@sql1 mysql]# chmod +x /etc/init.d/mariadb
    [root@sql1 mysql]# chkconfig --add mariadb
    [root@sql1 mysql]# ln -s /usr/local/mysql/bin* /usr/local/bin

    配置mariadb配置文件

    [root@sql1 mysql]# vim /etc/my.cnf
    # 只修改这两项
    datadir=/mydata/mariadb
    socket=/tmp/mysql.sock

    启动mariadb数据库服务

    [root@sql1 mysql]# systemctl start  mariadb
    # mysql_secure_installation 用来修改密码、删除匿名用户、取消远程链接
    [root@sql1 mysql]# mysql_secure_installation 

     配置完成后就可以用mysql命令使用mariadb了

                                                                                                                                                                                                                                                                                  

    --求知若饥 虚心若愚
  • 相关阅读:
    查询记录时rs.previous()的使用
    Cocos2d-x中由sprite来驱动Box2D的body运动(用来制作平台游戏中多变的机关)
    vim经常使用命令总结
    微信公众号:码农的世界
    RHEL5 X86-64上安装Oracle 11gR2演示样例与总结
    JavaScript中获取当前项目的绝对路径
    thinkphp内置标签简单讲解
    function $(id) {}表示什么函数
    表单实例(判断两次密码是否一致)
    thinkphp模板继承
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9452686.html
Copyright © 2011-2022 走看看