官方下載下傳位址:
https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.1.22/source/mariadb-10.1.22.tar.gz
1、首先查詢下是否安裝了mysql或者舊版本mariadb
rpm -qa | grep mysql
删除rm -rf /etc/my.cnf
2、安裝依賴包
# yum install -y libevent
# yum groupinstall -y Development Tools
# yum install -y ncurses-devel openssl-devel openssl
3、建立資料庫使用者及組
#groupadd mysql
#useradd mysql -s /sbin/nologin -g mysql -M mysql
4、建立資料庫資料存放目錄及賦予權限
#mkdir /appliction/mydata -p
#chown mysql.mysql /appliction/mydata -R
一、編譯安裝開始
1、解壓
#tar zxf mariadb-10.1.22.tar.gz
#cd mariadb-10.1.22
#cmake . -DCMAKE_INSTALL_PREFIX=/appliction/mysql \ //安裝目錄
-DMYSQL_DATADIR=/appliction/mydata \ //資料庫存放目錄
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //支援資料庫innobase引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //支援資料庫archive引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //支援資料庫blackhole存儲引擎
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \ //字元集utf8
-DDEFAULT_COLLATION=utf8_general_ci \ //校驗字元
-DENABLED_LOCAL_INFILE=1 //允許本地導入資料
執行編譯安裝:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
這裡說明一下:-DCMAKE_INSTALL_PREFIX是指定安裝的位置,這裡是/usr/local/mysql,-DMYSQL_DATADIR是指定MySQL的資料目錄,這裡是/data1/mysql,安裝目錄和資料目錄都可以自定義設定,-DSYSCONFDIR是指定配置檔案所在的目錄,一般都是/etc ,具體的配置檔案是/etc/my.cnf,-DWITHOUT_TOKUDB=1這個參數一般都要設定上,表示不安裝tokudb引擎,tokudb是MySQL中一款開源的存儲引擎,可以管理大量資料并且有一些新的特性,這些是Innodb所不具備的,這裡之是以不安裝,是因為一般計算機預設是沒有Percona Server的,并且加載tokudb還要依賴jemalloc記憶體優化,一般開發中也是不用tokudb的,是以暫時屏蔽掉,否則在系統中找不到依賴會出現:CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompilerNaNake:179 (message)這樣的錯誤,然後後面那些參數都是可選的,可以加也可以不加,最後的編碼建議設定一下,是以編譯指令也可以簡化成下面這樣:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data1/mysql -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
注意:如果萬一執行中有了錯誤,可以執行: rm -f CMakeCache.txt 删除編譯緩存,讓指令重新執行,否則每次讀取這個檔案,指令修改正确也是報錯
#make -j4
#make install
cmake沒問題,可以編譯并且安裝了: make && make install 時間有點長,耐心等待
執行完成也就是安裝完成了,現在執行 cd /usr/local/mysql/ 進入mysql安裝目錄分别執行下面指令:
chown -R mysql:mysql .
scripts/mysql_install_db --datadir=/data1/mysql --user=mysql
chown -R root .
cp support-files/mysql.server /etc/init.d/mysqld
然後還可以将mysqld添加至系統服務:
chkconfig --add mysqld # 添加至系統服務
chkconfig mysqld on # 設定開機自啟動
現在如果啟動可能會報錯,原因是日志目錄沒有建立,預設是/var/log/mariadb/mariadb.log,後來也可以修改,現在執行: mkdir/var/log/mariadb 建立日志目錄,然後執行: /etc/init.d/mysqld start 或者 systemctl start mysqld.service 都可以啟動mysql服務
啟動服務後,還不能馬上進入mysql shell界面,原因是剛才編譯時執行本地socket為:/tmp/mysql.sock但是檢視/etc/my.cnf中配置的位置卻是:/var/lib/mysql/mysql.sock,現在執行指令: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 建立軟連結即可
2、配置MariaDB
#cd /appliction/mysql
#scripts/mysql_install_db --user=mysql --datadir=/appliction/mydata
複制配置文檔
#cd /appliction/mysql/support-files/
#cp my-large.cnf /etc/my.cnf
建立啟動腳本
# cd /appliction/mysql/support-files/
# cp mysql.server /etc/rc.d/init.d/mysqld
配置環境變量,友善直接輸入mysql
# cat /etc/profile.d/mysql.sh
MYSQL_HOME=/appliction/mysql
export PATH=$MYSQL_HOME/bin:$PATH
#source /etc/profile.d/mysql.sh
啟動資料庫
# /etc/rc.d/init.d/mysqld start登陸資料庫,不需要密碼
報錯rm -f /tmp/mysql.sock
# mysql
qld start
Reloading systemd: [ OK ]
Starting mysqld (via systemctl): [ OK ]
初始化資料庫,此方式可以禁用空密碼登陸,按照提示輸入你需要的Y或者N
# mysql_secure_installation
設定mysql本地方式免密碼登陸
# egrep -v "^$|#" /etc/my.cnf
[client]
port= 3306
socket= /tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql(安裝資料庫目錄)
datadir=/home/mydata(資料存放目錄)
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
log-bin=mysql-bin
binlog_format=mixed
server-id= 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
user = root
password = 123456
host = 127.0.0.1
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M