mysql
1、拓扑结构
mysql集群有如下三层:
- 应用程序层:负责与mysql服务器通信的各种应用程序。
- Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。
- NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。
- Management层:负责管理SQL与NDB节点
拓扑结构图如下所示:
Management:192.168.0.10
NDB节点:IP地址:192.168.0.20
NDB节点:IP地址:192.168.0.30
SQL节点:IP地址:192.168.0.20
SQL节点:IP地址:192.168.0.30
2、多机部署
2-1、初始化系统
每个节点都操作
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled
2-2、依赖包安装
yum install wget gcc gcc-c++ make
cmake ncurses-devel libtool zilib-devel –y
注:此处cmake是mysql
5.5之后版本所必需的,5.5之后的版本将cmake取代configure;
2-3、mysql管理节点
vim …/mysql-cluster/config.ini
[ndbd
default]
# Options
affecting ndbd processes on all data nodes:
NoOfReplicas=2 # Number of replicas
DataMemory=80M # How much memory to allocate for data
storage
IndexMemory=18M # How much memory to allocate for index
storage
#ServerPort=2202 # This the default value; however, you can
use any
[ndb_mgmd]
#
Management process options:
NodeId=1
HostName=192.168.1.150 # Hostname or IP address of MGM node
DataDir=/var/lib/mysql-cluster # Directory for MGM node log files
[ndbd]
HostName=192.168.1.151 # Hostname or IP address
NodeId=2 # Node ID for this data
node
DataDir=/usr/local/mysql/data # Directory for this data node’s data files
[ndbd]
# Options
for data node “B”:
HostName=192.168.1.152 # Hostname or IP address
NodeId=3 # Node ID for this data
node
DataDir=/usr/local/mysql/data # Directory for this data node’s data files
[mysqld]
NodeId=4
HostName=192.168.1.153 # Hostname or IP address
[mysqld]
NodeId=5
HostName=192.168.1.154
2-4、ndb节点(数据节点)
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
user=mysql
symbolic-links=0
ndbcluster
ndb-connectstring=192.168.1.150
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=192.168.1.150
初始化数据库:
mysql_install_db –user=mysql
–basedir=/usr/local/mysql–datadir=/usr/local/mysql/data
会初始化mysql的data目录,并且创建那些系统表。
同样也会初始化系统表空间并且关联innodb表与数据结构。
chown-R mysql.mysql /usr/local/mysql
2-5、SQL节点
vim /etc/my.cnf
[client]
socket=/usr/local/mysql/sock/mysql.sock
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
ndb-connectstring=192.168.1.150
[mysql_cluster]
ndb-connectstring=192.168.1.150
mysql_install_db –user=mysql –basedir=/usr/local/mysql–datadir=/usr/local/mysql/data
chown-R mysql.mysql /usr/local/mysql
2-6、把mysql添加为系统服务
cp
mysql/support-files/mysql.server
/etc/rc.d/init.d/
chmod
+x /etc/rc.d/init.d/mysql.server
chkconfig
–add mysql.server
3、Cluster启动
3-1、启动管理节点
首次启动需要加 –initial
mysql/bin/ndb_mgmd -f
/data/mysql-cluster/config.ini –initial
报错的话:
mysql/bin/ndb_mgmd –skip-config-cache -f
/data/mysql-cluster/config.ini –initial
3-2、启动数据节点
首次启动需要+
–initial
/data/mysql/bin/ndbd
–initial
3-3、启动 SQL 节点
/data/mysql/bin/mysqld_safe –user=mysql
&
3-4、查看集群状态
管理节点
ndb_mgm
show
4、单机部署
4-1、解压安装
tar zxvf
mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz
mv
mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64/ mysql
mkdir sock
mkdir /var/lib/mysql
bin/mysql_install_db –user=mysql
–basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
cp support-files/mysql.server
/etc/init.d/mysql
vim data/z3.pid
chmod 755 z3.pid
chown -R mysql.mysql mysql
4-2、配置
vim /etc/my.cnf
[client]
default-character-set=utf8
socket=/usr/local/mysql/sock/mysql.sock
#user=root
#password=123321
host=localhost
port=3306
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/sock/mysql.sock
user=mysql
#
Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables
//忽略登录密码
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysqld.pid
4-3、启动
service mysql start(stop、status)
4-4、登录
mysql/bin/mysql -uroot -p
4-5、授权
grant all privileges on *.* to ‘user’@’%’ indetified by ‘password’ with grant option //授权
flush privileges //使立即生效