2018年1月1日星期一

CentOS 6.x下编译安装 MariaDB 10.x

Image result for centos mariadb

线上找了无数教程,总结一下:

准备物料:

1,先到 MariaDB官方下载所需的Mariadb源码;

cli下使用 wget https://downloads.mariadb.com/MariaDB/mariadb-10.2/bintar-linux-x86_64/mariadb-10.2.11-linux-x86_64.tar.gz

解压缩 tar zxvf mariadb-10.2.11-linux-x86_64.tar.gz

进入目录 cd mariadb-10.2.11-linux-x86_64

2,解决系统依赖;

yum -y groupinstall Development Tools

yum -y install cmake* ncurse* gnutls* openssl* bison* gcc* zlib* libxml*  readline-devel libmcrypt* boost*

3,创建用户\组;

groupadd mariadb

useradd –r –g mariadb –s /bin/false mariadb

useradd -g mariadb -r -M -s /sbin/nologin mariadb

两条语句都可以

4,开始编译

Cmake . –LH //查看相关参数,默认使用cmake . 编译的话,会使用mysql用户

可选参数

指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安装目录
-DMYSQL_DATADIR=/data/mysql #数据库存储目录
-DSYSCONFDIR=/etc
-DTMPDIR=/usr/local/mysql/tmp # 临时文件存放目录
-DMYSQL_USER=mariadb #配置默认用户
    
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-DWITH_MYISAM_STORAGE_ENGINE=1 # Myisam 引擎支持
-DWITH_INNOBASE_STORAGE_ENGINE=1  # innoDB 引擎支持
-DWITH_ARCHIVE_STORAGE_ENGINE=1 # ARCHIVE 引擎支持
-DWITH_BLACKHOLE_STORAGE_ENGINE=1  # BLACKHOLE 引擎支持
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 # PERFSCHEMA 引擎支持
-DWITH_FEDERATED_STORAGE_ENGINE=1  # FEDERATEDX 引擎支持
-DWITH_TOKUDB_STORAGE_ENGINE=1 # TOKUDB 引擎支持
-DWITH_XTRADB_STORAGE_ENGINE=1  # XTRADB 引擎支持
-DWITH_ARIA_STORAGE_ENGINE=1 # ARIA 引擎支持
-DWITH_PARTITION_STORAGE_ENGINE=1 # PARTITION 引擎支持
-DWITH_SPHINX_STORAGE_ENGINE=1 # SPHINX 引擎支持
-DWITH_READLINE=1 # readline库

若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0

其它常用的选项:
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1

可视化编译过程

make -j $(awk '/processor/{i++}END{print i}' /proc/cpuinfo) && make install

5,安装后配置

建立目录

mkdir /var/log/mysql 创建日志目录

mkdir /var/run/mysql 创建启动目录

chown –R mysql: /var/log/mysql 修改目录所属权

chown –R mysql: /var/run/mysql 修改目录所属权

编辑环境变量 vi /etc/profile 加入 export PATH=$PATH:/var/local/mariadb/bin 使用source /etc/profile 加载

复制配置文件 cp ./support-files/my-large.cnf /etc/my.cnf

初始化数据库 ./scripts/mysql_install_db –-basedir=/usr/local/mariadb -–datadir=/home/data/mysql –-user=mariadb &

复制启动脚本 cp ./support-files/mysql.server /etc/init.d/mysql

更新权限 chmod +x /etc/init.d/mysql

启动mariaDB /etc/init.d/mysql start

设置自启动

chkconfig --add mysqld
chkconfig mysqld on

修改root/@主机 密码

'/usr/local/mysql//bin/mysqladmin' -u root password 'new-password'
'/usr/local/mysql//bin/mysqladmin' -u root -h vm.net password 'new-password'

需要注意的是权限、目录以及用户的对应,可以在cmake中自定义配置参数,例如:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DMYSQL_TCP_PORT=3306
-DWITH_EXTRA_CHARSETS=complex
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DENABLED_PROFILING=on
-DWITH_SSL=system
-DWITH_LIBWRAP=0
-DWITH_ZLIB=system
-DENABLED_THREAD_SAFE_CLIENT=on
-DWITH_EMBEDDED_SERVER=on
-DMYSQL_DATADIR=/home/data/mysql/
-DMYSQL_USER=mariadb
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DSYSCONFDIR=/etc
-DENABLE_PROFILING=1

使用以上语句会遇到缺少系统加密组件gnutls的问题,以及在安装gnutls时遇到Libnettle 3.1 was not found.这样的问题。在编译安装完nettle后,配置gnutls还是会遇到同样的问题。

同时还需要使用yum –y install gmp* 安装gmp组件。

需要Libtasn1 4.9以及……无数依赖问题。

参考链接

https://mariadb.com/kb/zh-cn/3028/

https://mariadb.com/kb/zh-cn/installing-mariadb-binary-tarballs/

http://www.lysator.liu.se/~nisse/nettle/nettle.html#Installation

https://www.tuicool.com/articles/3qeuQbB

https://www.quyu.net/info/617.html

http://www.linuxidc.com/Linux/2013-10/91963.htm

https://www.cnblogs.com/taosim/articles/4252982.html

https://www.biaodianfu.com/centos-7-2-mariadb.html

https://www.gramess.com/article/detail/66.html

没有评论: