MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品
一 部署环境
1.系统版本和内核
[root@localhost ~]# cat /etc/centos-release
CentOS release 6.9 (Final)
[root@localhost ~]# uname -r
2.6.32-696.el6.x86_64
2.编译安装MariaDB时需要包组 “Development tools” 和”Server Platform Development”,用yum安装即可,此外还需要cmake,用yum安装即可
[root@localhost ~]# yum groupinstall "Development tools" "Server Platform Development" -y
[root@localhost ~]# yum install cmake -y
3.创建数据库用户和组
[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# useradd -r -g 306 -u 306 -s /sbin/nologin -M mysql
[root@localhost ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)
4.创建数据库数据存放目录及赋予权限
[root@localhost ~]# mkdir -p /data/mysql
[root@localhost ~]# chown -R mysql:mysql /data/mysql
[root@localhost ~]# ls -ld /data/mysql
drwxr-xr-x 2 mysql mysql 4096 Oct 16 00:20 /data/mysql
二 编译安装MariaDB
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.2.9/source/mariadb-10.2.9.tar.gz
[root@localhost ~]# tar xf mariadb-10.2.9.tar.gz -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/mariadb-10.2.9
[root@localhost mariadb-10.2.9]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql \
> -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system \
> -DWITH_LIBWRAP=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
其中,上述选项含义如下
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装路径
-DMYSQL_DATADIR=/data/mysql 数据库存放目录
-DSYSCONFDIR=/etc 配置文件(my.cnf)目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock UNIX socket文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 innoDB 引擎支持
-DWITH_READLINE=1 readline库
-DWITH_ARCHIVE_STORAGE_ENGINE=1 ARCHIVE 引擎支持
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 BLACKHOLE 引擎支持
-DWITH_SSL=system 系统传输使用SSL加密
-DWITH_ZLIB=system 系统传输使用zlib压缩
-DWITH_LIBWRAP=0 libwrap库
-DDEFAULT_CHARSET=utf8 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci 默认字符校对
[root@localhost mariadb-10.2.9]# make && make install
三 安装后的配置
1.导出二进制程序目录至PATH环境变量中
[root@localhost ~]# vim /etc/profile.d/mysql.sh
MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile.d/mysql.sh
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2.导出库文件路径
[root@localhost ~]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@localhost ~]# ldconfig
3.导出头文件,可以基于链接的方式
[root@localhost ~]# ln -sv /usr/local/mysql/include /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include'
4.导出帮助手册
编辑man.config文件,找到 MANPATH /usr/X11R6/man 这一行,在下面添加如下一行
[root@localhost ~]# vim /etc/man.config
MANPATH /usr/local/mysql/man
5.配置MariaDB
[root@localhost ~]# mkdir /etc/mysql
[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
在/etc/mysql/my.cnf文件中找到【mysqld】,在后面添加如下三行
[root@localhost mysql]# vim /etc/mysql/my.cnf
[mysqld]
......(省略)
datadir = /data/mysql
innodb_file_per_table = on
skip_name_resolve = on
6.创建MariaDB服务脚本并加入开机自启动
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# chkconfig --add mysql
[root@localhost mysql]# chkconfig mysql on
[root@localhost mysql]# chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
7.初始化数据库
[root@localhost mysql]# chown -R mysql:mysql ./*
[root@localhost mysql]# scripts/mysql_install_db --datadir=/data/mysql --user=mysql
[root@localhost mysql]# ls /data/mysql/
aria_log.00000001 ib_buffer_pool ib_logfile0 mysql mysql-bin.index performance_schema
aria_log_control ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.state test
8.启动MariaDB
[root@localhost ~]# service mysql start
[root@localhost ~]# ss -tunl | grep 3306
tcp LISTEN 0 80 :::3306 :::*
[root@localhost ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.9-MariaDB-log 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)]> exit
Bye