`
收藏列表
标题 标签 来源
mysql-cluster 7.3.5-linux 安装 mysql, linux, cluster mysql-cluster 7.3.5-linux 安装
先安装 
#yum install -y perl
#yum install -y perl-Module-Install.noarch  
#yum install libaio
【集群环境】

管理节点    10.0.0.19
数据节点    10.0.0.12
                   10.0.0.17
sql节点       10.0.0.18
                   10.0.0.22

1. 添加mysql用户
[plain] view plaincopyprint?
# groupadd mysql  
# useradd mysql -g mysql  

2. 安装mysql-cluster 7.3.5-linux 
[plain] view plaincopyprint?
# cd /usr/local/src/(已下载好集群版)  
# tar -xvf mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz   
# mv mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64 ../mysql  
# cd ..  
# chown -R mysql:mysql mysql/  
# cd mysql  
# scripts/mysql_install_db --user=mysql   

以上步骤5台机器都要执行
3. 集群配置
(1) 管理节点

[plain] view plaincopyprint?
# vi  /var/lib/mysql-cluster/config.ini (目录和文件没有请新建,添加以下内容)  

[plain] view plaincopyprint?
[NDBD DEFAULT]  
NoOfReplicas=2  
[TCP DEFAULT]  
portnumber=3306  
  
[NDB_MGMD]  
#设置管理节点服务器  
nodeid=1  
HostName=10.0.0.19  
DataDir=/var/mysql/data  
  
[NDBD]  
id=2  
HostName=10.0.0.12  
DataDir=/var/mysql/data  
  
[NDBD]  
id=3  
HostName=10.0.0.17  
DataDir=/var/mysql/data  
  
[MYSQLD]  
id=4  
HostName=10.0.0.18  
[MYSQLD]  
id=5  
HostName=10.0.0.22  
  
#必须有空的mysqld节点,不然数据节点断开后启动有报错  
[MYSQLD]  
id=6  
[mysqld]  
id=7  

拷贝ndb_mgm、ndb_mgmd到bin目录。
[plain] view plaincopyprint?
# cd /usr/local/mysql/bin  
# cp ./ndb_mgm /usr/local/bin/  
# cp ./ndb_mgmd /usr/local/bin/  

备注:    管理节点只要ndb_mgm和ndb_mgmd两个文件和一个配置文件即可。
                因此把这三个文件复制到那里,那里就是管理节点了。
                ndb_mgmd是mysql cluster管理服务器,ndb_mgm是客户端管理工具。

启动管理节点
[plain] view plaincopyprint?
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini  
关闭管理节点
[plain] view plaincopyprint?
# ndb_mgm>shutdown  
备注:命令行中的ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。
如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。
[plain] view plaincopyprint?
# ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial  

[plain] view plaincopyprint?
# ndb_mgm  
这时就进入到客户端,可以对mysql cluster进行各项操作。

[plain] view plaincopyprint?
# ndb_mgm> show 查看各节点情况。  
  
# ndb_mgm> all report memory 查看各数据节点使用情况  
  
# ndb_mgm>create nodegroup 3;创建数据节点分组  
  
# mysql> alter online table data_house reorganize partition; 调整分区数据  

(2) 数据节点

[plain] view plaincopyprint?
# vi /etc/my.cnf (添加以下内容)  

[plain] view plaincopyprint?
[mysqld]  
datadir=/var/mysql/data  
socket=/var/mysql/mysql.sock  
user=mysql  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  
  
#运行NDB存储引擎  
ndbcluster   
#指定管理节点  
ndb-connectstring=10.0.0.19  
  
[MYSQL_CLUSTER]  
ndb-connectstring=10.0.0.19  
[NDB_MGM]  
connect-string=10.0.0.19  
  
[mysqld_safe]  
log-error=/var/mysql/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid  

安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时
[plain] view plaincopyprint?
# /usr/local/mysql/bin/ndbd --initial   
  
正常启动  
# /usr/local/mysql/bin/ndbd  
(3) sql节点
[plain] view plaincopyprint?
# cd /usr/local/mysql/  
设置mysql服务为开机自启动
[plain] view plaincopyprint?
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
# chmod +x /etc/rc.d/init.d/mysqld  
# chkconfig --add mysqld  
[plain] view plaincopyprint?
# vi /etc/my.cnf (添加以下内容)  
[plain] view plaincopyprint?
[mysqld]  
server-id=4#每个服务器的id不一样  
datadir=/var/mysql/data  
socket=/var/mysql/mysql.sock  
user=mysql  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  
#log-bin = /var/mysql/log/mysql-bin.log  
max_connections=1000  
  
#以下为mysql 主主模式的配置文件  
# 忽略mysql数据库复制  
binlog-ignore-db=mysql  
# 每次增长2  
auto-increment-increment = 2  
# 设置自动增长的字段的偏移量,即初始值为2  
auto-increment-offset = 1  
  
[mysqld_safe]  
#log-error=/var/mysql/log/mysqld.log  
#pid-file=/var/run/mysqld/mysqld.pid  
  
[MYSQLD]  
ndbcluster  
ndb-connectstring=10.0.0.19  
[MYSQL_CLUSTER]  
ndb-connectstring=10.0.0.19  
[NDB_MGM]  
connect-string=10.0.0.19  
[plain] view plaincopyprint?
#service mysqld start  

登陆bin/mysql 错误解决办法:    1. can't connect to local MySQL server through socket '/tmp/mysql.sock'
                               ln -s /var/mysql/mysql.sock /tmp/mysql.sock

mysql集群的启动顺序为:管理节点->数据节点->SQL节点
mysql集群的关闭顺序为,管理节点->数据节点->SQL节点


NoOfReplicas简单解释
节点a,b
数据1,2

假如NoOfReplicas=1

则1存在a上,2存在b上
只要a或者b down掉,数据就不完整了,少了我们的数据1或者2

假如NoOfReplicas=2
则1存在a上,2的一个备份也存在a上
2存在b上,1的一个备份也存在b上
任何一个a或者b down掉,数据都是完整的

NoOfReplicas=2 为2个ndb节点为一个组
create nodegroup 6,7 将id为6和7的ndb作为新的一个组,当组内一台机器宕机,不会影响整个集群
NoOfReplicas修改刚ndb的启动需要加上--initial且数据全清空(warn)

防火墙一定得关,fuck,不知何时又自动启动了,莫名其妙的错错逗死你的

设置字符编码:
character-set-server=utf8#这是设置服务器使用的字符集
character-set-client=utf8#这是设置客户端发送查询使用的字符集
character-set-connection=utf8#这是设置服务器需要将收到的查询串转换成的字符集
character-set-results=utf8#这是设置服务器要将结果数据转换到的字符集,转换后才发送给客户端

lower_case_table_names=1 #忽略大小写
sqld节点:
设置InnoDB为默认引擎:在配置文件/etc/my.cnf中下面加入default-storage-engine=ndbcluster
Global site tag (gtag.js) - Google Analytics