CentOS 6.9 基於gcc4.8.5編譯安裝mariadb-10.2.12

系統平臺:mysql

CentOS release 6.9 (Final) c++

內核 2.6.32-696.el6.x86_64sql

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

http://mariadb.org/數據庫

mariadb-10.2.12.tar.gzvim

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

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

mariadb-10.2.12須要c++11特性支持,gcc4.8如下並未包含,而Centos 6.9的gcc版本爲4.4.7安全

但在編譯程序或運行程序時須要更高版本的gcc,只能手動編譯安裝gcc。app

而 CentOS 7 則依然使用其 4.8,因此基於兼容性考慮,我選擇升級到 4.8.5socket

2. gcc 4.8.5編譯安裝

gcc編譯請參考ide

3. cmake 編譯安裝

cmake編譯請參考

也能夠使用yum cmake的2.8版本

4.安裝依賴包

# yum install ncurses-devel libaio-devel openssl-devel -y

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

#cmake --version
cmake version 3.10.2

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

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

6.編譯安裝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

7.建立軟連接mysql指向解壓後的目錄

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

8.建立用於mysql的組和帳號

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

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

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

10.添加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

11.建立數據庫存放文件夾並修改權限

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

12.複製主配置文件my.cnf

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

#grep memory support-files/*

找到適合本機內存的模板
image

本機內存爲512M,因此選擇了my-large.cnf這個配置文件

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

13.修改配置文件

# 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

14.安裝數據庫相關文件

#cd /usr/local/mysql/

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

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

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

15.複製啓動服務腳本至/etc/init.d目錄

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

16.添加開機啓動服務,並啓動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)

17.進行安全配置

#/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!

18.測試

#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)]>
相關文章
相關標籤/搜索