wegt https://cdn.mysql.com//Downloads/MySQL-Cluster-7.6/mysql-cluster-gpl-7.6.14-el7-x86_64.tar.gz
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
groupadd mysql
useradd mysql -g mysql
tar -zxvf mysql-cluster-gpl-7.6.14-el7-x86_64.tar.gz -C /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
su - mysql
cd /usr/local/mysql && scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
##########################################
##########################################管理节点
mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
cat >> config.ini<<EOF
[NDBD DEFAULT]
NoOfReplicas=2
[NDB_MGMD]
#设置管理节点服务器
nodeid=1
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster
[NDBD]
id=2
HostName=192.168.1.13
DataDir=/usr/local/mysql/data
[NDBD]
id=3
HostName=192.168.1.14
DataDir=/usr/local/mysql/data
[MYSQLD]
id=4
HostName=192.168.1.15
[MYSQLD]
id=5
HostName=192.168.1.16
#必须有空的mysqld节点,不然数据节点断开后启动有报错
[MYSQLD]
id=6
[mysqld]
id=7
EOF
chown -R mysql:mysql /var/lib/mysql-cluster
su - mysql
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
##########################################数据节点
cat >>/etc/my.cnf<<EOF
vim /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
default-storage-engine=ndbcluster
ndbcluster
ndb-connectstring=192.168.1.14
character_set_server=utf8
lower_case_table_names=1
[mysql_cluster]
ndb-connectstring=192.168.1.13
EOF
su - mysql
/usr/local/mysql/bin/ndbd --initial
##########################################SQL节点
cat >>/etc/my.cnf<<EOF
vim /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
ndb-connectstring=192.168.1.16
[mysql_cluster]
ndb-connectstring=192.168.1.17
EOF
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
su - mysql
systemctl restart mysqld.service
/usr/local/mysql/bin/mysqladmin -u root password ‘password’
####测试显示效果
ndb_mgm> show
##########################################nginx install
wget http://nginx.org/download/nginx-1.18.0.tar.gz && tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0 && ./configure –with-stream && make && make install
cat >nginx.conf<<EOF
#user nobody;
user root;
worker_processes auto;
#error_log /var/log/nginx/error.log;
#pid /var/run/nginx.pid;
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream mysqld {
server 10.16.8.193:3306 weight=4 max_fails=3 fail_timeout=30s;
server 10.16.8.194:3306 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 3306;
proxy_connect_timeout 30s;
proxy_timeout 43200s;
proxy_pass mysqld;
}
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
max_ranges 1;
upstream myproject {
server 10.16.8.191:8082;
server 10.16.8.192:8082;
}
server {
listen 9300;
server_name localhost;
location / {
proxy_pass http://myproject;
}
}
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
max_ranges 1;
location / {
root html;
index index.html index.htm;
max_ranges 1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
max_ranges 1;
}
}
}
EOF
##################################################
ndb_mgmd管理命令:/usr/local/mysql/bin/ndb_mgm执行之后就是管理控制台了,里面可以继续输入命令。(具体命令可以使用help查看)
停止集群服务器的命令:/usr/local/mysql/bin/ndb_mgm -e shutdown
如果集群配置有更新了:rm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1 3
停止SQL节点的命令:/usr/local/mysql/bin/mysqladmin -uroot shutdown