CentOS 7 源码编译MariaDB

Posted 大魔王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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了

                                                                                                                                                                                                                                                                              

 

以上是关于CentOS 7 源码编译MariaDB的主要内容,如果未能解决你的问题,请参考以下文章

源码编译并二进制安装MySQL5.7 3 二进制安装mariadb10.4

运维知识:CentOS7下源码编译安装MariaDB 10.2

CentOS-7.4 二进制安装mariadb10.2数据库

centos7源码编译安装mariadb

CentOS 7中mariadb编译安装教程systemctl启动

Centos7编译安装nginx1.15+MariaDB10.3+php-7.2