CentOS下源码编译安装MariaDB-5.5.49
一、cmake编译环境
1.编译环境(CentOS 6)
[root@localhost ~]# yum install -y cmake # 在BASE源中,项目构建工具
[root@localhost ~]# yum -y groupinstall "Development Tools" "Server Platform Development" # 开发环境
[root@localhost ~]# yum install -y ncurses-devel openssl-devel libevent-devel # 依赖包组
注意:
MySQL 5.5及以上版本或者较新版本的Mariadb时的项目工具不再是make,而是cmake
2.cmake介绍
cmake能够独立于源码(out-of-source)编译,即编译工作可以在另一个指定的目录中而非源码目录中进行,保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure cmake .
./configure --help cmake . -LH 或者 ccmake .
如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt
二、编译安装Mariadb-5.5
1.创建用户和数据目录
[root@localhost ~]# useradd -r mysql
[root@localhost ~]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
[root@localhost ~]# mkdir -pv /mydata/data
2.编译安装源码
[root@localhost ~]# tar xf mariadb-5.5.49.tar.gz
[root@localhost ~]# cd mariadb-5.5.49/
[root@localhost mariadb-5.5.49]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.49 -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
[root@localhost mariadb-5.5.49]# make
[root@localhost mariadb-5.5.49]# make install
3.初始化数据
[root@localhost ~]# cd usr/local/
[root@localhost local]# ln sv mariadb-5.5.49 mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# chown -R root.mysql ./*
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data # 数据初始化
4.编辑配置文件
[root@localhost ~]# mkdir /etc/mysql
[root@localhost mysql]# cp support-files/mylarge.cnf /etc/mysql/my.cnf
[root@localhost mysql]# vim /etc/mysql/my.cnf
datadir = /mydata/data # 指明数据目录
innodb_file_per_table = ON # innodb存储引擎工作方式
skip_name_resolve = ON # 跳过名称解析
5.启动脚本与启动服务
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld # 增加到开机启动
[root@localhost mysql]# service mysqld start
[root@localhost mysql]# ss -tnl
[root@localhost ~]#/usr/local/mysql/bin/mysql_secure_installation # 安全初始化
7.环境变量和头文件导出
三、CentOS7示例启动脚本
[root@localhost ~]# vim /etc/systemd/system/mariadb.service也可以放置在/usr/lib/systemd/system/mariadb.service
CentOS 7 Unit file示例:
[Unit]
Description=MariaDB database server
After=syslog.target
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
Execstart=/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql
TimeoutSec=300
Privatetmp=false
[Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl demon-reload
注意:
也可放置在/usr/lib/systemd/system/mariadb.service
MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里