分佈式部署文檔 - 數據庫 部署

說明

  • # 開頭的行表示註釋
  • $ 開頭的行表示須要執行的命令
  • > 開頭的行表示須要在數據庫中執行

環境

  • 系統: CentOS 7
  • 服務: MariaDB Galera Cluster
Protocol ServerName IP Port Used By
TCP Mariadb-01 192.168.100.10 3306 Jumpserver
TCP Mariadb-02 192.168.100.11 3306 Jumpserver
TCP Mariadb-03 192.168.100.12 3306 Jumpserver

開始安裝

# 如下命令須要在三臺數據庫服務器分別執行
$ yum upgrade -y

# 添加 MariaDB 源 $ vi /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64 gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck=1 # 安裝 MariaDB Galera Cluster $ yum install -y mariadb mariadb-server mariadb-common galera rsync # 設置 Firewalld 和 Selinux $ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="tcp" port="3306" accept" $ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="tcp" port="4567" accept" $ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="tcp" port="4568" accept" $ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="tcp" port="4444" accept" $ firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="udp" port="4567" accept" # 192.168.100.0/24 爲整個 Jumpserver 網絡網段, 這裏就偷懶了, 本身根據實際狀況修改便可 $ firewall-cmd --reload $ setenforce 0 $ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 
# 在 192.168.100.10 上執行初始化命令
$ systemctl start mariadb
$ mysql_secure_installation  # 推薦設置 root 密碼, 其餘選項能夠所有 y $ systemctl stop mariadb 
# 在 192.168.100.10 上執行如下命令
$ vi /etc/my.cnf.d/server.cnf
...
[galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_name=galera_cluster wsrep_cluster_address="gcomm://192.168.100.10,192.168.100.11,192.168.100.12" wsrep_node_name=Mariadb-01 # 注意這裏改爲本機 hostname wsrep_node_address=192.168.100.10 # 注意這裏改爲本機 ip binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 ... # 在 192.168.100.11 上執行如下命令 $ vi /etc/my.cnf.d/server.cnf ... [galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_name=galera_cluster wsrep_cluster_address="gcomm://192.168.100.10,192.168.100.11,192.168.100.12" wsrep_node_name=Mariadb-02 # 注意這裏改爲本機 hostname wsrep_node_address=192.168.100.11 # 注意這裏改爲本機 ip binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 ... # 在 192.168.100.12 上執行如下命令 $ vi /etc/my.cnf.d/server.cnf ... [galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_name=galera_cluster wsrep_cluster_address="gcomm://192.168.100.10,192.168.100.11,192.168.100.12" wsrep_node_name=Mariadb-03 # 注意這裏改爲本機 hostname wsrep_node_address=192.168.100.12 # 注意這裏改爲本機 ip binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 
# 在 192.168.100.10 上執行如下命令
$ sudo -u mysql /usr/sbin/mysqld --wsrep-new-cluster &> /tmp/wsrep_new_cluster.log & $ disown $! $ tail -f /tmp/wsrep_new_cluster.log # 若是出現 ready for connections, 表示啓動成功 
# 在 192.168.100.11 和 192.168.100.12 啓動 mariadb 服務
$ systemctl start mariadb
# 回到第一臺服務器
$ ps -ef | grep mysqld | grep -v grep | awk '{print $2}' | xargs kill -9 $ systemctl start mariadb 
# 在任意數據庫服務器執行如下命令驗證 MariaDB Galera Cluster
$ mysql -uroot -p -e "show status like 'wsrep_cluster_size'" # 這裏應該顯示集羣裏有3個節點 $ mysql -uroot -p -e "show status like 'wsrep_connected'" # 這裏應該顯示ON $ mysql -uroot -p -e "show status like 'wsrep_incoming_addresses'" # 這裏應該顯示3個ip $ mysql -uroot -p -e "show status like 'wsrep_local_state_comment'" # 這裏顯示節點的同步狀態 
# 建立 Jumpserver 數據庫及受權
$ mysql -uroot
> create database jumpserver default charset 'utf8'; > grant all on jumpserver.* to 'jumpserver'@'192.168.100.%' identified by 'weakPassword'; > flush privileges; > quit 

以後去 nginx 設置 tcp 代理便可node

相關文章
相關標籤/搜索