1. 程式人生 > >CentOS 6.9 基於clang3.4 編譯安裝mariadb-10.2.12

CentOS 6.9 基於clang3.4 編譯安裝mariadb-10.2.12

chmod group ln -s 程序 版本 mariadb current ner 測試

系統平臺:

CentOS release 6.9 (Final)

內核 2.6.32-696.el6.x86_64

1.去官網下載適合的源碼包

http://mariadb.org/

mariadb-10.2.12.tar.gz

檢查系統內是否安裝了數據庫。

#rpm -qa|grep MariaDB
#rpm -qa|grep mysql

cmake最新版本需要c++11支持,gcc4.8以下並未包含,而Centos 6.9的版本如下

#rpm -qa|grep gcc
gcc-4.4.7-18.el6.x86_64
libgcc-4.4.7-18.el6.x86_64
gcc-gfortran-4.4.7-18.el6.x86_64
gcc-c++-4.4.7-18.el6.x86_64

2.采用clang編譯器進行編譯

Clang 比 GCC 編譯器的優勢:

編譯速度更快
編譯產出更小
出錯提示更友好

3.安裝依賴包

# yum install cmake ncurses-devel libaio-devel openssl-devel clang -y   #其中clang需要EPEL源,

請自行參考
https://mirrors.aliyun.com/help/centos

#cmake --version
cmake version 2.8.12.2

4.解壓mariadb包至任意臨時目錄

#tar xvf mariadb-10.2.12.tar.gz -C /app/sdb/

5.編譯安裝mariadb

#mkdir /app/sdb/db-build
#cd /app/sdb/db-build/

以下的編譯參數,根據自己的需求定制

#cmake /app/sdb/mariadb-10.2.12  -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-10.2.12  -DSYSCONFDIR=/etc  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_EXTRA_CHARSETS=all  -DWITH_READLINE=1  -DWITH_SSL=system  -DWITH_ZLIB=system  -DWITH_EMBEDDED_SERVER=1  -DENABLED_LOCAL_INFILE=1  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_MEMORY_STORAGE_ENGINE=1  -DWITH_PARTITION_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_DEBUG=0

我使用的AUSU筆記本是 I5  1CPU 4核,4GB內存,20分鐘編譯安裝完成。
# make -j 8 && make install

編譯完成占用空間為3.3GB

6.創建軟鏈接mysql指向解壓後的目錄

#cd /usr/local/
#ln -s mariadb-10.2.12 mysql

7.創建用於mysql的組和賬號

#groupadd -g 500 mysql
#useradd -g 500 -u 500 -s /sbin/nologin -M mysql

8.修改mysql文件夾所屬者和所屬組

#chown -R mysql.mysql /usr/local/mysql/

9.添加PATH至環境變量中

#echo ‘PATH=/usr/local/mysql/bin:$PATH‘ >> /etc/profile.d/mysql.sh

檢查文件
#cat /etc/profile.d/mysql.sh

加載環境變量文件 並檢查
#source /etc/profile.d/mysql.sh
#echo $PATH

#mysql -V
mysql  Ver 15.1 Distrib 10.2.12-MariaDB, for Linux (x86_64) using readline 5.1

10.創建數據庫存放文件夾並修改權限

#mkdir -pv /data/sqldb/3306/{log,data,pid,socket,tmp}
#chown -R mysql.mysql /data/sqldb/
#chmod -R 770 /data/sqldb/

11.復制主配置文件my.cnf

這裏先要確認下本機的內存多少,以便使用一個參考模板。

#grep memory support-files/*

找到適合本機內存的模板
技術分享圖片

本機內存為512M,所以選擇了my-large.cnf這個配置文件

#\cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf

12.修改配置文件

# vim /etc/my.cnf

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
pid-file = /data/sqldb/3306/pid/mysql.pid
datadir = /data/sqldb/3306/data
tmpdir = /data/sqldb/3306/tmp
innodb_file_per_table = 1
skip_name_resolve = 1
log-error = /data/sqldb/3306/log/error.log

13.安裝數據庫相關文件

#cd /usr/local/mysql/

查看下安裝程序的安裝參數

#/usr/local/mysql/scripts/mysql_install_db --help

#./scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

14.復制啟動服務腳本至/etc/init.d目錄

#cp support-files/mysql.server /etc/init.d/mysqld

15.添加開機啟動服務,並啟動mysqld服務

#chkconfig --add mysqld

#service mysqld start

Starting MySQL.180128 23:54:38 mysqld_safe Logging to ‘/data/sqldb/3306/log/error.log‘.
180128 23:54:38 mysqld_safe Starting mysqld daemon with databases from /data/sqldb/3306/data
                                                     [  OK  ]

#lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  2067 mysql   21u  IPv6  12603      0t0  TCP *:mysql (LISTEN)

16.進行安全配置

#/usr/local/mysql/bin/mysql_secure_installation

Enter current password for root 默認為空
Set root password   設置mysql root密碼
Remove anonymous users  是否移除匿名用戶登錄
Disallow root login remotely    是否禁止root遠程登錄
Remove test database and access to it?  是否移除test數據和test賬號
Reload privilege tables now?    是否立即更新權限
Thanks for using MariaDB!

17.測試

#mysql -u root -p
Enter password: 

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.2.12-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)]> use mysql;

建立一個賬號測試遠程登錄

MariaDB [mysql]> grant all on *.* to ‘hunk‘@‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#mysql -uhunk -p123456 -h192.168.5.128

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 21
Server version: 10.2.12-MariaDB-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]>

CentOS 6.9 基於clang3.4 編譯安裝mariadb-10.2.12