十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了武昌免費(fèi)建站歡迎大家使用!
安裝環(huán)境
系統(tǒng):CentOS 6.8 x86_64
軟件:MariaDB 10.1.16
節(jié)點(diǎn)一:192.168.11.132 4C 8GB
節(jié)點(diǎn)二:192.168.11.133 4C 8GB
軟件獲取
訪問(wèn)MariaDB企業(yè)版下載地址 https://mariadb.com/my_portal/download/mariadb-enterprise 登錄帳號(hào)后選擇 10.1.16GA版本 源代碼包下載。
從MariaDB Enterprise 10.1版本開(kāi)始,企業(yè)版軟件包與集群功能集成到一起,所以下載軟件包就一個(gè)。
下載源代碼包到CentOS系統(tǒng)的/usr/src目錄下
訪問(wèn)galeracluster官網(wǎng) http://galeracluster.com/ 下載頁(yè)面
選擇目前最新版Galera 3 wsrep源代碼包下載到CentOS系統(tǒng)的/usr/src目錄
下載完成后將兩個(gè)軟件包拷貝到各個(gè)節(jié)點(diǎn)的/usr/src目錄下
安裝過(guò)程
1.添加epel的yum源
rpm -vih http://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm
2.重新生成yum源緩存
yum clean all;yum makecache
3.使用yum來(lái)安裝必要的軟件包
yum install -y ntp ntpdate libaio jemalloc ncurses-devel make cmake bison zlib zlib-devel openssl openssl-devel gcc gcc-c++ rsync scons boost boost-devel check check-devel
4.利用文件CRC校驗(yàn)碼來(lái)判斷,如果/etc/localtime與/usr/share/zoneinfo/Asia/Shanghai不是同一個(gè)文件,則系統(tǒng)時(shí)區(qū)不為亞洲上海,此時(shí)需要拷貝或鏈接/usr/share/zoneinfo/Asia/Shanghai文件到/etc/localtime文件覆蓋。
5.與ntp server同步來(lái)更新系統(tǒng)時(shí)間
ntpdate 0.centos.pool.ntp.org
hwclock -w
/etc/init.d/ntpd start
chkconfig ntpd on
chkconfig ntpdate on
6.關(guān)閉系統(tǒng)防火墻服務(wù)與selinux服務(wù)
/etc/init.d/iptables stop
/etc/init.d/ip6tables stop
chkconfig iptables off
chkconfig ip6tables off
setenforce 0
7.解壓galera壓縮包,拷貝到/usr/local并重命名
tar zxf galera-3-25.3.17.tar.gz
mv galera-3-25.3.17 /usr/local/galera
8.使用scons命令來(lái)編譯安裝galera
9.安裝完成會(huì)生成/usr/local/galera/libgalera_smm.so模塊
10.切換到/usr/src目錄解壓mariadb-enterprise配置
cd /usr/src/
tar zxf mariadb-enterprise-10.1.16.tar.gz
cd mariadb-10.1.16/
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DDEFAULT_SYSCONFDIR=/usr/local/mariadb/etc -DMySQL_DATADIR=/usr/local/mariadb/data -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mariadb/mariadb.sock -DMYSQL_USER=mariadb -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DWITH_WSREP=ON -DWITH_INNODB_DISALLOW_WRITES=ON
11.用cpu的4核心同時(shí)編譯
make -j 4
12.安裝
make install
13.創(chuàng)建mariadb用戶及相應(yīng)目錄
useradd -M -s /sbin/nologin mariadb
mkdir -p /usr/local/mariadb/etc
mkdir -p /usr/local/mariadb/run
mkdir -p /usr/local/mariadb/log
14.如果存在/etc/my.cnf文件,請(qǐng)刪除或改名。并創(chuàng)建新的配置文件
mv /etc/my.cnf /etc/my.cnf.bak
cp support-files/my-large.cnf.sh /usr/local/mariadb/etc/my.cnf
15.編輯/usr/local/mariadb/etc/my.cnf修改port與socket參數(shù),并在[mysqld]添加
pid-file = /usr/local/mariadb/run/mariadb.pid
log-error = /usr/local/mariadb/log/mariadb.log
16.修改mariadb目錄所有者
chown -R mariadb:mariadb /usr/local/mariadb/
17.初始化mariadb數(shù)據(jù)庫(kù)
/usr/local/mariadb/scripts/mysql_install_db --user=mariadb --basedir=/usr/local/mariadb/ --datadir=/usr/local/mariadb/data/
18.修改/usr/local/mariadb/bin/mysqld_safe文件參數(shù)
user='mariadb'
19.啟動(dòng)mariadb數(shù)據(jù)庫(kù)
/usr/local/mariadb/bin/mysqld_safe &
20.查看進(jìn)程與端口狀態(tài)
21.創(chuàng)建啟動(dòng)腳本
cp /usr/src/mariadb-10.1.16/support-files/mysql.server /etc/init.d/mariadb
chmod 755 /etc/init.d/mariadb
22.修改/etc/init.d/mariadb文件如下參數(shù)
basedir=/usr/local/mariadb
datadir=/usr/local/mariadb/data
mysqld_pid_file_path=/usr/local/mariadb/run/mariadb.pid
23.添加chkconfig管理
chkconfig --add mariadb
24.測(cè)試啟動(dòng)功能
25.配置mariadb數(shù)據(jù)庫(kù)root賬戶登錄密碼,并進(jìn)行安全配置。
/usr/local/mariadb/bin/mysql_secure_installation
26.使用密碼登錄數(shù)據(jù)庫(kù)
/usr/local/mariadb/bin/mysql -u'root' -p'D5)Ga!3'
27.創(chuàng)建用于同步數(shù)據(jù)庫(kù)的sst帳號(hào)
GRANT USAGE ON *.* to sst@'%' IDENTIFIED BY 'g#ds0Gl';
GRANT ALL PRIVILEGES on *.* to sst@'%';
FLUSH PRIVILEGES;
28.停止數(shù)據(jù)庫(kù)
/etc/init.d/mariadb stop
修改配置文件 /usr/local/mariadb/etc/my.cnf 在末尾加入
!includedir /usr/local/mariadb/etc/my.cnf.d/
29.創(chuàng)建/usr/local/mariadb/etc/my.cnf.d/目錄與wsrep.cnf配置文件
mkdir /usr/local/mariadb/etc/my.cnf.d/
cp /usr/src/mariadb-10.1.16/support-files/wsrep.cnf.sh /usr/local/mariadb/etc/my.cnf.d/wsrep.cnf
chown -R mariadb.mariadb /usr/local/mariadb/etc/my.cnf.d/
在節(jié)點(diǎn)二(如果存在多個(gè)節(jié)點(diǎn)請(qǐng)?jiān)谄渌總€(gè)節(jié)點(diǎn))執(zhí)行以上1到29步驟安裝配置數(shù)據(jù)庫(kù)。
在節(jié)點(diǎn)一執(zhí)行:
修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下參數(shù)
wsrep_on=on
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_provider=/usr/local/galera/libgalera_smm.so
wsrep_cluster_name="my_wsrep_cluster"
wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"
wsrep_node_name=node01
wsrep_node_address=192.168.11.132
wsrep_sst_method=rsync
wsrep_sst_auth=sst:g#ds0Gl
啟動(dòng)集群服務(wù)
/etc/init.d/mariadb bootstrap
查看日志/usr/local/mariadb/log/mariadb.log有 WSREP: Synchronized with group, ready for connections 信息表示集群服務(wù)啟動(dòng)成功。
tail /usr/local/mariadb/log/mariadb.log
在節(jié)點(diǎn)二執(zhí)行:
修改/usr/local/mariadb/etc/my.cnf.d/wsrep.cnf在[mysqld]部分以下參數(shù)
wsrep_on=on
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
wsrep_provider=/usr/local/galera/libgalera_smm.so
wsrep_cluster_name="my_wsrep_cluster"
wsrep_cluster_address="gcomm://192.168.11.132,192.168.11.133"
wsrep_node_name=node02
wsrep_node_address=192.168.11.133
wsrep_sst_method=rsync
wsrep_sst_auth=sst:g#ds0Gl
啟動(dòng)集群服務(wù)
/etc/init.d/mariadb start
日志詳情
如有多個(gè)節(jié)點(diǎn),請(qǐng)參照節(jié)點(diǎn)二配置。
在任意一節(jié)點(diǎn)登錄mariadb數(shù)據(jù)庫(kù)
查看集群功能是否開(kāi)啟
show status like 'wsrep_ready';
初始化數(shù)據(jù)庫(kù)顯示情況
show variables like 'wsrep_cluster_address';
查看集群相關(guān)參數(shù)
show status like 'wsrep%';
wsrep_cluster_size集群規(guī)模節(jié)點(diǎn)數(shù)
wsrep_cluster_state_uuid集群uuid
wsrep_connected連接狀態(tài)
wsrep_ready啟動(dòng)狀態(tài)
查看各節(jié)點(diǎn)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)間是否一致
select now();
測(cè)試在一個(gè)創(chuàng)建數(shù)據(jù)庫(kù)與數(shù)據(jù)表
create database base;
use base;
create table pet(name varchar(20), owner varchar(20),species varchar(20),sex char(1),birth date, death date);
在另一個(gè)節(jié)點(diǎn)查看已經(jīng)同步成功
在另一個(gè)節(jié)點(diǎn)向數(shù)據(jù)表插入一條記錄
insert into pet values('Puffball','Diane','hamster','f','1999-03-30',null);
在其他節(jié)點(diǎn)查看記錄已經(jīng)同步
select * from pet;
刪除數(shù)據(jù)庫(kù)
drop database base;
至此MariaDB Galera Cluster集群部署成功。