1. 程式人生 > >編譯安裝MariaDB-10.1.30

編譯安裝MariaDB-10.1.30

環境相關:
OS:CentOS release 6.9
IP:192.168.1.10
CPU:4核
MEM:2G
DISK:50G

1. 實驗主機克隆

參照《CentOS6實驗機模板搭建部署》
克隆一臺實驗機,調整記憶體為2G,CPU為4核,並進一步配置主機名和hosts檔案:

hostname mariadb
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts
sed -i "s/^HOSTNAME.*$/HOSTNAME=$(hostname)
/g"
/etc/sysconfig/network ping -c 3 $(hostname)

2. 環境準備

刪除系統預安裝的apache和mysql,安裝編譯需要的系統支援包:

for i in $(rpm -qa|grep -Ei 'http|mysql'|grep -v 'mysql-libs');do yum remove $i;done
# 包mysql-libs如果解除安裝,會依賴解除安裝掉crontab,而該包本身並不影響MariaDB的編譯安裝,因此不做處理。
yum -y install gcc gcc-c++ cmake ncurses-devel \
       bison libxml2-devel boost libevent boost-devel \
       Judy Judy-devel openssl-devel
yum -y install libevent-devel
# 如果使用系統安裝映象 CentOS-6.X-x86_64-bin-DVD1.iso 配置的本地yum源
# 則該包 libevent-devel 在光碟DVD2上面,需要解除安裝DVD1,掛載DVD2安裝,安裝然後切回DVD1 # 如果配置了網路yum源,則沒有問題 # 文件《CentOS6實驗機模板搭建部署》是有部署阿里雲的yum源的

2. 編譯安裝

新增使用者,刪除系統預安裝自帶的配置檔案,編譯安裝:

groupadd mariadb
useradd -s /sbin/nologin -M -g mariadb mariadb
# 引數 -s 指定使用者的登入shell,/sbin/nologin 表示該使用者無法登陸
# 引數 -M 表示不建立該使用者的家目錄
rm -f /etc/my.cnf
# 因為系統有預裝mysql相關的包,因此有預裝的配置檔案,刪除之
cd /tmp
tar -xf /tmp/mariadb-10.1.30.tar.gz
cd /tmp/mariadb-10.1.30
# 解壓,進入目錄,開始編譯安裝
cmake \
-DCMAKE_INSTALL_PREFIX
=/usr/local/mariadb \
-DSYSCONFDIR=/etc \ -DWITH_ARIA_STORAGE_ENGINE=1 \ -DWITH_XTRADB_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_READLINE=1 \ -DWITH_SSL=bundled \ -DWITH_ZLIB=system \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLED_LOCAL_INFILE=1 # 指定安裝目錄、配置檔案目錄、編譯安裝的引擎,設定預設字符集以及readline、ssl和zlib等 make -j 4 && make install # 實驗機是4核的,因此調整引數為 -j 4,加快編譯速度 # 至於-j引數是CPU核心數還是CPU核心數+1,不做討論 # 編譯安裝過程會很長,取決於虛擬機器的磁碟效能和CPU數量 cd /usr/local/mariadb/bin ./mysql --version # 檢視版本,驗證編譯安裝成功

3. 配置my.cnf檔案

port=3306
# 設定服務埠為3306,也可以設定成其他埠
cat > /etc/my.cnf << EOF
[mysqld_safe]
pid-file=/usr/local/mariadb/run/mysqld.pid
[mysql]
port=$port
prompt=\\\[email protected]\\\d \\\r:\\\m:\\\s>
default-character-set=utf8
[client]
port=$port
socket=/usr/local/mariadb/run/mysql.sock
[mysqld]
#######dir#######
basedir=/usr/local/mariadb
datadir=/usr/local/mariadb/data
tmpdir=/usr/local/mariadb/tmp
lc_messages_dir=/usr/local/mariadb/share
log-error=/usr/local/mariadb/log/alert.log
slow_query_log_file=/usr/local/mariadb/log/slow.log
socket=/usr/local/mariadb/run/mysql.sock
#######innodb#######
innodb_data_home_dir=/usr/local/mariadb/data
innodb_log_group_home_dir=/usr/local/mariadb/log/iblog
innodb_buffer_pool_size=1680M
#設定innodb_buffer_pool_size大小為伺服器記憶體的80%
#該設定不能有小數點,1.5G的寫法是錯誤的,使用1500M或1G
innodb_log_files_in_group=4
innodb_log_file_size=500M
innodb_log_buffer_size=256M
innodb_flush_log_at_trx_commit=2
innodb_io_capacity=10000
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_page_size=8k
transaction-isolation=READ-COMMITTED
#######replication#######
master-info-file=/usr/local/mariadb/log/master.info
relay-log=/usr/local/mariadb/log/relaylog
relay_log_info_file=/usr/local/mariadb/log/relay-log.info
skip-slave-start
#######binlog#######
log-bin=/usr/local/mariadb/log/binlog
server_id=383306
binlog_cache_size=32K
max_binlog_cache_size=600M
max_binlog_size=500M
binlog-format=ROW
sync_binlog=0
log-slave-updates
expire_logs_days=7
#######MyISAM Specific options#######
key_buffer_size = 8M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
#######not innodb options (fixed)#######
back_log = 50
max_connections = 400
table_cache = 2048
max_allowed_packet = 16M
max_heap_table_size = 64M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 400
query_cache_size = 0
query_cache_type = 0
tmp_table_size = 64M
gdb
#######Maria-5.5
thread_handling=pool-of-threads
thread_pool_size=16
#######server
default-storage-engine=INNODB
lower_case_table_names=1
performance_schema=0
long_query_time=1
slow_query_log=1
port=$port
skip-name-resolve
skip-ssl
max_user_connections=8000
max_connect_errors=65535
EOF
# 該配置檔案的相關引數不再做詳細解釋,可以查詢官網進行確認和進一步配置

4. 增加系統庫檔案目錄,設定環境變數

cat > /etc/ld.so.conf.d/mariadb.conf<<EOF
/usr/local/mariadb/lib
/usr/local/lib
EOF
/sbin/ldconfig -v
# 軟體編譯安裝後,編譯生成的lib所在目錄一般不在系統預設的lib目錄中,新增該目錄,防止產生問題
echo 'export PATH=$PATH:/usr/local/mariadb/bin'>>/root/.bash_profile 
export PATH=$PATH:/usr/local/mariadb/bin
# 設定root的環境變數,將編譯生成的bin目錄載入到預設的PATH裡
mysql --version
# 測試

5. 建立目錄,初始化庫

建立目錄,如果是生產機器,需要在建立的目錄上掛載相應的儲存裝置,保證資料安全

mkdir -v  /usr/local/mariadb/data
mkdir -pv /usr/local/mariadb/log/iblog
mkdir -v  /usr/local/mariadb/run
mkdir -v  /usr/local/mariadb/tmp
# 一條命令搞定:mkdir -pv /usr/local/mariadb/{data,log/iblog,run,tmp}
chown -R mariadb: /usr/local/mariadb
# 注意許可權!!!

建庫

/usr/local/mariadb/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mariadb \
--datadir=/usr/local/mariadb/data \
--user=mariadb
# 建庫,指定配置檔案和庫主要目錄和資料目錄以及庫所屬的OS系統使用者
/usr/local/mariadb/bin/mysqld_safe --user=mariadb &
# 嘗試啟動,測試
netstat -tupln|grep 3306
echo 'show databases;'|mysql
# 測試埠和預設的庫
mysqladmin shutdown
# 關庫

6. 設定開機啟動,初始化root使用者密碼

echo '/usr/local/mariadb/bin/mysqld_safe --user=mariadb &'>>/etc/rc.local
reboot
# 可以在最後重啟進行開機啟動的測試
PASS=vincent
# 暫時設定root使用者密碼為vincent
/usr/local/mariadb/bin/mysqladmin -u root password "$PASS"
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' \
    IDENTIFIED BY '$PASS' WITH GRANT OPTION;"|\
    mysql -uroot -p"$PASS" -Dmysql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' \
    IDENTIFIED BY '$PASS' WITH GRANT OPTION;"|\
    mysql -uroot -p"$PASS" -Dmysql
echo "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' \
    IDENTIFIED BY '$PASS' WITH GRANT OPTION;"|\
    mysql -uroot -p"$PASS" -Dmysql
echo "update user set password=password('$PASS') where user='root';"|\
    mysql -uroot -p"$PASS" -Dmysql
# 設定localhost和127以及其他連結到庫的IP的root密碼
echo "delete from user where not (user='root') ;"|\
    mysql -uroot -p"$PASS" -Dmysql
# 刪掉非root使用者
echo "delete from user where user='root' and password=''; "|\
    mysql -uroot -p"$PASS" -Dmysql
# 刪掉root使用者密碼為空的許可權記錄
echo "drop database test;"| mysql -uroot -p"$PASS" -Dmysql
# 刪除預設的test庫,優化項
echo "DROP USER ''@'%';"| mysql -uroot -p"$PASS" -Dmysql
# 刪掉空密碼登入許可權
echo "flush privileges;"| mysql -uroot -p"$PASS" -Dmysql
# 重新整理許可權表,生效配置

[TOC]

相關推薦

編譯安裝MariaDB-10.1.30

環境相關: OS:CentOS release 6.9 IP:192.168.1.10 CPU:4核 MEM:2G DISK:50G 1. 實驗主機克隆 參照《CentOS6實驗機模板搭建部署》 克隆一臺實驗機,調整記憶體為2G,CPU為4核,

CentOS 7編譯安裝Mariadb-10.2.11

mariadb1.安裝開發環境安裝需要包:1yum install -y ncurses-devel openssl-devel zlib-devel ncurses-devel openssl gcc gcc-c++2.安裝cmake12345tar -zvxf cmake-3.8.0.tar.gz -C

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.o

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

ges fig load term 包含 database lease scripts user 系統平臺: CentOS release 6.9 (Final) 內核 2.6.32-696.el6.x86_64 1.去官網下載適合的源碼包 http://mariadb

Linux CentOS 7 編譯安裝PostgreSQL 10.1

重啟: su postgres cd /usr/local/postgresql/bin ./pg_ctl -D /usr/local/postgresql/data/ -l logfile restart 配置編譯安裝 先去官網下載需要的包 https://www.postgr

Ubuntu下安裝mariaDB 10.1 叢集

【環境】 Ubuntu 14.04 MariaDB 10.1 stable 【機器】 host-1: 10.0.5.11 host-2: 10.0.5.12 host-3: 10.0.5.13 sudo apt-get install so

centos7.3編譯安裝php-7.1.10

編譯 php實驗環境:centos7.3主機一臺apache服務配置結束http://php.net/ 官網下載最新版php源碼包實驗前準備]#yum install libxml2-devel -y ]#yum install bzip2-devel -y ]#yum install libmcrypt-d

Hive-0.13.1本地獨立模式安裝 元資料儲存到MariaDB-10.1.0 Hadoop-2.4.0

tar -zxvf apache-hive-0.13.1-bin.tar.gz 解壓後,編輯java.sh(java.sh為自己建立的指令碼): vim /etc/profile.d/java.sh export HIVE_HOME=/opt/modules/hive/apache-hive-0.13.1

解決編譯安裝mariadb,make錯誤"make[1]: *** [unittest/mysys/CMakeFiles/aes-t.dir/all] Error 2"

centos6.5 編譯安裝mariadb如遇到如下錯誤 collect2: ld returned 1 exit status make[2]: *** [unittest/mysys/aes-t] Error 1make[1]: *** [unittest/mysys/CMakeFi

mariadb 10.1.26 二進位制包安裝筆記

報錯連結:http://php.upupw.net/ank2discuss/40/6841-e.html mariadb 10.1.26 二進位制版本 全名稱: mariadb-10.1.26-linux-x86_64.tar.gz 目的: 主從複製,讀

Python學習筆記-編譯安裝Python3.6.1 + iPython

python由於系統已有2.6的python,最好不好修改系統的版本,使用編譯安裝下載Python3.6.1包wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz安裝依賴:yum -y install readline-devel解壓

centos 6.5下編譯安裝php-7.1.6和 php memcached擴展

php 編譯安裝 memcached 0,安裝 php-7.1.6 依賴包# yum groupinstall "Development tools" "Desktop Platform Development" # yum -y install openssl-devel libcurl-dev

CentOS下編譯安裝mariadb

centos mariadb 下載CMAKEhttps://cmake.org/download/解壓文件tar -zxvf cmake-3.6.0-rc3.tar.gz安裝GCCyum install gcc-c++切換到cmake目錄cd cmake-3.6.0-rc3執行configure文件.

數據庫 之 自動化編譯安裝Mariadb數據庫

編譯安裝 mariadb 1. 概述MariaDB可以理解為mysql的升級版,因為mysql的創始人後面創建了MariaDB,所以MariaDB第一個版本之間從5.1開始發布(當時mysql已經是5版本),後面從5.5直接跳到10版本,centOS7默認使用MariaDB,CentOS 6需要另外編

?編譯安裝 mariadb

技術 查看 sysconf useradd debug rip nbsp mil support 編譯安裝 mariadb-10.2.12.tar.gz1查詢本地是否已經安裝mysql(卸載之否則會報錯);rpm -qa | grep mysql[root@user ~ 1

CentOS 6 多實例 編譯安裝mariadb-5.5.59

簡單 安裝mariadb 需要 sql命令 ext sets ren maria config 前言 在單機上運行版本相同的多個mysql實例的,可以通過mysql_install_db初始化到不同的數據目錄, 通過不同的my.cnf指定相關的參數,分別設置不同的啟動和關閉

Centos6.8源碼編譯安裝zabbix3.4.1

cati minimum 訪問 epel源 編譯安裝 其余 selinux tar.gz clas 一、安裝系統環境 Zabbix服務器運行環境為Linux+PHP+Nginx+MySQL,以下為安裝詳細版本環境: Centos 6.8 + PHP 7.1.8 + Ng

編譯安裝 mariadb

mariadb 編譯安裝環境: CentOS6.9 軟件版本 編譯安裝 mariadb-10.2.12.tar.gz 1查詢本地是否已經安裝mysql(卸載之否則會報錯); rpm -qa | grep mysql [root@user ~ 13]#rpm -qa | grep mysql 2.安裝相

Centos 編譯安裝Apache subversion-1.9.7 + httpd 2.4.32

Subversion HTTPsvn是Subversion的簡稱,是一個開放源代碼的版本控制系統。一、下載安裝Subversion必要的源碼文件Apachewget http://mirrors.shu.edu.cn/apache/httpd/httpd-2.4.32.tar.gzSubversionwge

編譯安裝php-7.1.17及部分擴展

部分 unit arm edi AR nss fix bcmath sqli Install php-7.1.17 ./configure --prefix=/usr/local/php-7.1.17 --disable-debug --enable-shmop --wi