mariadb编译安装详解

1.数据库准备
mariadb-5.5.57-linux-x86_64.tar.gz官方下载

2.首先查看系统系统是否安装了mysql或旧版本mariadb

[root@shaohua ~]#rpm -qa |grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64

3.安装依赖包组

yum install cmake
yum groupinstall -y Development Tools
yum install -y ncurses-devel
yum install  -y  openssl-devel openssl  libevent 

4.准备数据存放的文件系统
添加一块硬盘20G的大小空间供其数据存放,磁盘大小依据数据存量划分即可,格式化后并挂载。具体划分挂载将不做演示

[root@shaohua ~]#fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x1f6b5798

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux
/dev/sdb1      ext4       22G   77M   20G   1% /mnt/mydata  ##数据存放目录

4.新建用户以安全方式运行进程

groupadd -r mysql  #创建组
useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql 、
chown -R mysql:mysql /mydata/data

5.1编译安装,解压并进入目录,执行cmake

tar zxf mariadb-10.1.22.tar.gz
cd mariadb-10.1.22
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR= /mnt/mydata -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

说明:-DCMAKE_INSTALL_PREFIX是指定安装的位置,这里是/usr/local/mysql,-DMYSQL_DATADIR是指定MySQL的数据目录,这里是/data1/mysql,安装目录和数据目录都可以自定义设置,-DSYSCONFDIR是指定配置文件所在的目录,一般都是/etc ,具体的配置文件是/etc/my.cnf,-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MySQL中一款开源的存储引擎,可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机默认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompilerNaNake:179 (message)这样的错误,然后后面那些参数都是可选的,可以加也可以不加,最后的编码建议设置一下,所以编译指令也可以简化为上述这样;

注意:如果万一执行中有了错误,可以执行: rm -f CMakeCache.txt 删除编译缓存,让指令重新执行,否则每次读取这个文件,命令修改正确也是报错
make -j4
make install
cmake没问题,可以编译并且安装了: make && make install 时间有点长,耐心等待
执行完成也就是安装完成了,现在执行 cd /usr/local/mysql/ 进入mysql安装目录分别执行下面命令:

5.2初始化mysql-5.5.33

cd /usr/local/mysql 
chown -R mysql:mysql  .  #将该目录下包括子目录的owner都改为mysql
scripts/mysql_install_db --user=mysql --datadir=/mnt/mydata/data
chown -R root  .

5.3为mysql提供主配置文件

cp support-files/my-large.cnf  /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mnt/mydata/data

5.4为mysql提供sysv服务脚本

cd /usr/local/mysql
cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
添加至服务列表:
 chkconfig --add mysqld
 chkconfig mysqld on
添加PATH变量路径
# vim /etc/profile.d/mysqld.sh 
[root@shaohua ~/mariadb-5.5.57]#vim /etc/profile.d/mysqld.sh 
 export PATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysqld.sh 
启动服务
systemctl start mysqld

为了使用mysql的安装符合系统使用规范,并将其开发组件导入给系统使用,这里还需要进行如下步骤:

6.输出mysql的man手册至man命令的查找路径

编辑/etc/man.config,添加如下行即可:
    MANPATH  /usr/local/mysql/man
    编辑/etc/man_db.conf
    MANPATH_MAP /usr/local/mysql    /usr/local/mysql/man

7.输出mysql的头文件至系统头文件路径/usr/include,可以通过简单的创建链接实现

ln -sv /usr/local/mysql/include /usr/include/mysql

8.输入mysql的库文件给系统库查找路径

echo  '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf`
[root@shaohua ~/mariadb-5.5.57]#vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
让系统重新载入系统库:
ldconfig
[root@shaohua ~/mariadb-5.5.57]#mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.57-MariaDB Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 

推荐阅读更多精彩内容