mysql-cluster-gpl-7.3.19集群安装及问题(3台机器)

主要教程参考这里:https://blog.csdn.net/chengfei112233/article/details/7703812  会根据实际操作过程中的问题进行改动

系统:Centos7
mysql软件:mysql-cluster-gpl-7.3.19-linux-glibc2.12-x86_64.tar

下载地址: http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.19-linux-glibc2.12-x86_64.tar

1. 集群配置如下
(3台机器)

管理节点:192.168.6.134
数据节点1:192.168.6.135
数据节点2:192.168.6.136
sql节点1:192.168.6.135
sql节点2:192.168.6.136

我使用3台机器进行配置,其中两台机器上的数据节点与sql节点在一起

2. 管理节点安装(192.168.6.134)

1 目录结构尽量按照这样做,因为这样安装之后正好符合mysql默认的一些路径,会少很多麻烦,

2 至于是否新建mysql用户则根据自己情况吧,我直接用的root也是可以的,如果选择新建,记得要随时给用户赋权,不然也会遇到些执行权限问题,】

安装
shell> groupadd mysql
shell> useradd mysql -g mysql
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz /usr/local/
shell> cd /usr/local/
shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz /usr/local/
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
shell> chown -R mysql:mysql mysql
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql

配置管理节点
shell> mkdir /var/lib/mysql-cluster
shell> cd /var/lib/mysql-cluster

vi config.ini 添加以下内容
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
NodeId=1
Hostname=192.168.6.134  #管理IP
datadir=/usr/local/mysql/logs
[ndbd]
NodeId=2
Hostname=192.168.6.135           #数据节点1
datadir=/usr/local/mysql/data/      #数据文件位置
[ndbd]
NodeId=3
Hostname=192.168.6.136              #数据节点2
datadir=/usr/local/mysql/data/        #数据文件位置
[MYSQLD]
[MYSQLD]

【最后的这两个MYSQL建议也写上,eg:

[mysqld]

nodeid=7

hostname=192.168.4.7

3. 数据节点安装(192.168.6.135,192.168.6.136)

【这里同样建议按下面路径执行,是否新建mysql用户是无所谓的】

执行相同的安装操作
shell> groupadd mysql
shell> useradd mysql -g mysql
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 /usr/local/
shell> cd /usr/local/
shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
shell> chown -R mysql:mysql mysql
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
shell> cp support-files/mysql.server /etc/init.d/mysqld

配置数据节点
vi /etc/my.cnf 添加入如下内容
[mysqld]
ndbcluster                        # run NDB storage engine
ndb-connectstring=192.168.6.134   # location of management server

# Options for ndbd process:
[mysql_cluster]
ndb-connectstring=192.168.6.134   # location of management server

4. 启动管理节点服务(192.168.6.134)
shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
shell> netstat -lntpu
看到1186开放说明启动正常
★必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!

5. 启动数据节点服务(192.168.6.135,192.168.6.136)  Data (NDBD) node
shell> /usr/local/mysql/bin/ndbd --initial
备注: 启动此处时,需要为防火墙开启1186,3306端口。
在两台机器上启动服务, 执行相同操作
★必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!

启动结果如下:
2012-06-30 05:01:11 [ndbd] INFO     -- Angel connected to ‘192.168.6.134:1186‘
2012-06-30 05:01:11 [ndbd] INFO     -- Angel allocated nodeid: 3

6. 启动SQL节点服务(192.168.6.135,192.168.6.136)  MySQL server (SQL) node
shell> service mysqld start

如果在创建数据库时遇到如下错误
Access denied for user ‘‘@‘localhost‘ to database ‘mysql
解决方法:
首先停止mysqld服务,然后后台运行
shell> /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
shell> service mysqld start
再用root登录,就一切正常

看到nbdb服务和3306端口说明启动OK

7. 功能测试

在管理节点(192.168.6.134)上查看服务状态
shell> /usr/local/mysql/bin/ndb_mgm
ndb_mgm> show

Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=3    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)

[mysqld(API)]   2 node(s)
id=4    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)
id=5    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)

可以看到这里的数据节点、管理节点、sql节点都是正常的

★非常重要:
1.在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。虽然在MySql Cluster7.2版本开始提供了”用户权限共享”.

这里需要在两个数据节点上做一下初始密码和访问地址赋权操作:

两个数据节点上,mysql服务启动之后,mysql安装目录下:

./bin/mysqladmin -u root password ‘new-password‘
 或者 ./bin/mysqladmin -u root -h mysql1 password ‘new-password‘

允许外部IP访问:用户名和允许的网段根据实际情况设置

grant all on *.* to [email protected]‘%‘ identified by "root";

测试一:
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步
在数据节点1(192.168.6.135)上执行:
shell> /usr/local/mysql/bin/mysql -u root -p
mysql>show databases;
mysql>create database aa;
mysql>use aa;
mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;

commit;
然后在数据节点2上看数据是否同步过来了

经过测试,在非master上创建数据,可以同步到master上
查看表的引擎是不是NDB,>show create table 表名;

测试二、关闭一个数据节点 ,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来
首先把数据节点1重启,然后在节点2上添加数据
在节点2(192.168.6.136)上操作如下:
mysql> create database bb;
mysql> use bb
mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;

commit;
mysql> use aa
mysql> INSERT INTO ctest2 () VALUES (3333);mysql> SELECT * FROM ctest2;

commit;

等节点1启动完毕,启动节点1的服务#/usr/local/mysql/bin/ndbd --initial#service mysqld start然后登录进去查看数据# /usr/local/mysql/bin/mysql -u root –p可以看到数据已经同步过来了,说明数据可以双向同步了。

8. 关闭集群
1.关闭管理节点和数据节点,只需要在管理节点(ClusterMgm--134)里执行:
shell> /usr/local/mysql/bin/ndb_mgm -e shutdown
显示
Connected to Management Server at: localhost:1186
2 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.

2.然后关闭Sql节点(135,136),分别在2个节点里运行:
shell> /etc/init.d/mysql stop
Shutting down MySQL... SUCCESS!

注意:要再次启动集群,就按照第4,5,6步的启动步骤即可,不过这次启动数据节点的时候就不要加”–initial”参数了。

9.各种问题

①数据节点无法对表进行操作

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)

这个可能是本地数据节点没连接到管理节点,有时候虽然服务起来了但是连接到管理节点还需要时间,等看到都连接到管理节点了再操作也行,

②没有/root/.mysql_secret文件

/root/.mysql_secret: No such file or directory

以下是安装mysql服务时的提示,你可能没注意看,

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

./bin/mysqladmin -u root password ‘new-password‘
  或者./bin/mysqladmin -u root -h mysql1 password ‘new-password‘

③[ERROR] Fatal error: Can‘t open and lock privilege tables: Table ‘mysql.user‘ doesn‘t exist

这个问题不知道原因,备份好配置文件后重装了下数据节点的mysql就好了,

④MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

这可能是因为数据节点配置文件有问题,先备份配置文件,之后可以尝试把mysql安装目录下my.cnf内容改成类似这样的详细的(/etc/my.cnf貌似可以不改):

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql

参考这里:https://blog.csdn.net/bedisdover/article/details/52567269

⑤无法登录数据库时,可以尝试下面这种连接数据库的方式:

mysql -h 主机地址 -u 用户名 -p 用户密码

原文地址:https://www.cnblogs.com/1394htw/p/12327499.html

时间: 2024-11-10 14:54:06

mysql-cluster-gpl-7.3.19集群安装及问题(3台机器)的相关文章

Hadoop集群安装-CDH5(5台服务器集群)

CDH5包下载:http://archive.cloudera.com/cdh5/ 架构设计: 主机规划: IP Host 部署模块 进程 192.168.254.151 Hadoop-NN-01 NameNode ResourceManager NameNode DFSZKFailoverController ResourceManager 192.168.254.152 Hadoop-NN-02 NameNode ResourceManager NameNode DFSZKFailoverC

Redis Cluster 4.0高可用集群安装、在线迁移操作记录

之前介绍了redis cluster的结构及高可用集群部署过程,今天这里简单说下redis集群的迁移.由于之前的redis cluster集群环境部署的服务器性能有限,需要迁移到高配置的服务器上.考虑到是线上生产环境,决定在线迁移,迁移过程,不中断服务.操作过程如下: 一.机器环境 1 2 3 4 5 6 7 8 9 10 11 12 13 迁移前机器环境 ----------------------------------------------------------------------

Hadoop集群安装-CDH5(3台服务器集群)

CDH5包下载:http://archive.cloudera.com/cdh5/ 主机规划: IP Host 部署模块 进程 192.168.107.82 Hadoop-NN-01 NameNode ResourceManager NameNode DFSZKFailoverController ResourceManager 192.168.107.83 Hadoop-DN-01 Zookeeper-01 DataNode NodeManager Zookeeper DataNode Nod

nginx+双tomcat集群负载均衡(一台机器)

nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. 下面是采用一台机器nginx+双tomcat集群负载均衡方案.当更新项目时可以停止

mysql cluster (mysql 集群)安装配置方案

一.说明 本文参考:http://www.cnblogs.com/jackluo/archive/2013/01/19/2868152.html 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用3台,提供5个节点的MySQL CLuster体系,将SQL节点和数据节点共用一台机器,具体如下. 主机名 节点 对应的IP和端口 DB-mgm 管理节点 10.10.6.201:1186 DB-node1 数据节点 10.1

hadoop-ha+zookeeper+hbase+hive+sqoop+flume+kafka+spark集群安装

创建3台虚拟机 主机为桌面版 其他为迷你版本 ******************************常用命令.进程名称****************************启动集群命令: start-all.sh启动zookeeper: zkServer.sh start 启动journalnode: hadoop-daemon.sh start journalnode启动namenode: hadoop-daemon.sh --script hdfs start namenode启动z

zookeeper+kafka集群安装之一

zookeeper+kafka集群安装之一 准备3台虚拟机, 系统是RHEL64服务版. 1) 每台机器配置如下: $ cat /etc/hosts ... # zookeeper hostnames: 192.168.8.182 zk1 192.168.8.183 zk2 192.168.8.184 zk3 2) 每台机器上安装jdk, zookeeper, kafka, 配置如下: $ vi /etc/profile ... # jdk, zookeeper, kafka export KA

mysql cluster (mysql 集群)安装配置方案(转)

一.准备 1.准备服务器 计划建立有5个节点的MySQL CLuster体系,需要用到5台服务器,但是我们做实验时没有这么多机器,可以只用2台,我就是一台本机,一台虚拟机搭建了有5个节点的MySQL CLuster体系,将一个SQL节点一个数据节点一个SQL节点放在了一台服务器上(192.168.1.252),将另一个SQL节点和一个数据节点放在了另外一台服务器上(192.168.1.52). 节点配置说明 节点 对应的IP和端口 管理节点(1个) 192.168.1.252 SQL节点 (2个

Mysql上的RAC:Percona XtraDB Cluster负载均衡集群安装部署手册

 Percona XtraDB Cluster安装部署手册 引言 编写目的 编写此文档,供PerconaXtraDB Cluster部署时使用. 预期读者 系统维护人员及实施人员. 编制依据及参考资料 目标 通过阅读该手册,让读者明确PerconaXtraDB Cluster的安装.配置和维护情况,为后续数据库运维工作提供指导. 应用部署方案 环境准备 服务器列表 序号 IP 用途 HOSTNAME 操作系统 1 192.168.0.7 Percona XtraDB Cluster RedHat