一、环境准备(Centos7,mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz)
卸载以前安装的Mysql 或者 mariadb
yum -y remove mysql*
yum -y remove mariadb*
二、停用安全策略seLinux,关闭防火墙或者开启3306,1186端口
建议使用防火墙保证安全性
关闭防火墙 systemctl stop firewalld 或者 chkconfig --level 35 iptables off
禁用防火墙 systemctl disable firewalld
永久禁用安全策略(需要重启)
vi /etc/selinux/config
SELINUX=disabled
(centos6)
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT#DROP关闭
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2202 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1186 -j ACCEPT
/etc/init.d/iptables restart
setenforce 0
(centos7)
firewall-cmd --add-port=2202/tcp --zone=public --permanent
firewall-cmd --add-port=3306/tcp --zone=public --permanent
firewall-cmd --add-port=1186/tcp --zone=public --permanent
firewall-cmd --reload
setenforce 0
三、安装
管理节点:192.168.1.140
数据节点1:192.168.1.130
数据节点2:192.168.1.135
sql节点1:192.168.1.130
sql节点2:192.168.1.135
每个节点上
压缩包上传解压 比如上传至/usr/local
tar -xzvf mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64.tar.gz
3.1 管理节点安装
cd mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64
cd bin
#ndb管理节点相关文件
cp ndb_mgm* /usr/local/bin
cd /usr/local/bin
#增加执行权限
chmod +x ndb_mgm*
#创建配置文件
mkdir /var/lib/mysql-cluster
mkdir /usr/local/mysql
vi /var/lib/mysql-cluster/config.ini
#默认配置
[ndbd default]
NoOfReplicas=2#数据节点数量
DataMemory=5120M#存储大小,内存的合适大小
IndexMemory=128M#索引存储大小
ServerPort=1186#端口默认1186
#管理节点
[ndb_mgmd]
nodeid=1#节点ID
HostName=192.168.1.140#管理节点地址
DataDir=/var/lib/mysql-cluster#(内存)数据目录
#数据节点
[ndbd]
nodeid=21#节点ID
HostName=192.168.1.130#数据节点地址
DataDir=/var/lib/mysql-cluster#(内存)数据目录
[ndbd]
nodeid=22
HostName=192.168.1.135
DataDir=/var/lib/mysql-cluster
#sql节点
[mysqld]
nodeid=31
HostName=192.168.1.130#sql节点地址,可访问
[mysqld]
nodeid=32
HostName=192.168.1.135
3.2 数据节点和sql节点安装配置
3.2.1 数据节点配置
#拷贝文件
cd mysql-cluster-gpl-7.5.4-linux-glibc2.5-x86_64
cd bin
cp ndbd /usr/local/bin
#创建目录(注意和管理节点配置文件保持一致)
mkdir -p /var/lib/mysql-cluster
#创建配置文件
vi /etc/my.cnf
[mysql_cluster] #配置数据节点连接管理节点
ndb-connectstring=192.168.1.140
3.2.2 sql节点配置
#新增用户组mysql和用户msyql
groupadd mysql
useradd -g mysql -s /bin/false mysql
#将解压的文件重命名
mv mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64 /usr/local/mysql
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld --initialize#(旧版本scripts/mysql_install_db --user=mysql)注意记录临时密码
#修改权限
cd ..
chown -R root .
chown -R mysql data
chgrp -R mysql .
#添加服务
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
#添加开机启动
chkconfig --add mysql.server
#配置数据节点
vi /etc/my.cnf
#申明是sql节点,其中的IP为管理节点的IP
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.140
注意:数据节点和sql节点同一台机器按照以下配置即可
#新增用户组mysql和用户msyql
groupadd mysql
useradd -g mysql -s /bin/false mysql
#新建文件夹并赋予权限
#mkdir /var/lib/mysql-cluster
#chown root:mysql /var/lib/mysql-cluster
#将解压的文件重命名
mv mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64 /usr/local/mysql
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld --initialize#(旧版本scripts/mysql_install_db --user=mysql)注意记录临时密码
#修改权限
cd ..
chown -R root .
chown -R mysql data
chgrp -R mysql .
#添加服务
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
#添加开机启动
chkconfig --add mysql.server
#配置数据节点
vi /etc/my.cnf
#申明是sql节点,其中的IP为管理节点的IP
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.140
#申明是数据节点,其中的IP为管理节点的IP
[mysql_cluster]
ndb-connectstring=192.168.1.140
四、启动和关闭(注意下面顺序不能变)
启动:(相关可执行文件路径视安装路径而定)
管理节点--》数据节点--》sql节点注意--initial参数在初始化或者需要恢复或者配置文件发生变化是需要
管理节点:/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
数据节点:/usr/local/mysql/bin/ndbd --initial
sql节点:service mysql start 或者service mysqld start
关闭:
sql节点--》管理节点
sql节点 关闭sql服务即可
管理节点:/usr/local/bin/ndb_mgm
mgm>shutdown
查看状态:
管理节点:/usr/local/bin/ndb_mgm
mgm>show#所有节点连接正常时即正常
五、改密并开启远程访问:sql节点
初始密码登录
mysql -u root -p
set password=password('root@neusoft');
grant all privileges on *.* to root@'%' identified by 'root@neusoft';
FLUSH PRIVILEGES;
六、注意
NDB 默认引擎 ndbcluster,否则不同步
可在配置成功后my.cnf 添加default-storage-engine=ndbcluster
七、附加
添加可执行文件路径
添加执行文件路径
#当前用户(/etc/profile 所有用户生效)
vi ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin