服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL集群搭建详解(3)

MySQL集群搭建详解(3)

2022-02-20 21:19yang1982_0907 Mysql

四、配置SQL结点(192.168.124.144、192.168.124.145) 1. 添加mysql组和用户 在shell中运行以下命令: groupadd mysql useradd -g mysql mysql 2. 配置my.cnf配置文件 在shell中运行以

四、配置SQL结点(192.168.124.144、192.168.124.145)

1. 添加mysql组和用户

在shell中运行以下命令:

																																																																																																																																		
  1. groupadd mysql
  2.  
  3. useradd -g mysql mysql

2. 配置my.cnf配置文件

在shell中运行以下命令:

gedit /etc/my.cnf

配置文件my.cnf的内容如下:

																																																																																																																																						
  1. [client]
  2.  
  3. socket=/usr/local/mysql/sock/mysql.sock
  4.  
  5. [mysqld]
  6.  
  7. ndbcluster
  8.  
  9. datadir=/usr/local/mysql/data
  10.  
  11. socket=/usr/local/mysql/sock/mysql.sock
  12.  
  13. ndb-connectstring=192.168.124.141
  14.  
  15. [mysql_cluster]
  16.  
  17. ndb-connectstring=192.168.124.141

3. 创建系统数据库

在shell中运行以下命令:

																																																																																																																																																								
  1. cd /usr/local/mysql
  2.  
  3. mkdir sock
  4.  
  5. scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

4. 设置数据目录

在shell中运行以下命令:

																																																																																																																																																														
  1. chown -R root .
  2.  
  3. chown -R mysql.mysql /usr/local/mysql/data
  4.  
  5. chown -R mysql.mysql /usr/local/mysql/sock
  6.  
  7. chgrp -R mysql .

5. 配置MySQL服务

在shell中运行以下命令:

																																																																																																																																																																						
  1. cp support-files/mysql.server /etc/rc.d/init.d/
  2.  
  3. chmod +x /etc/rc.d/init.d/mysql.server
  4.  
  5. chkconfig --add mysql.server

五、Cluster环境启动

注意启动顺序:首先是管理节点,然后是数据节点,***是SQL节点。

1. 启动管理结点

在shell中运行以下命令:

																																																																																																																																																																												
  1. ndb_mgmd -f /var/lib/mysql-cluster/config.ini

还可以使用ndb_mgm来监听客户端,如下:

ndb_mgm

2. 启动数据结点

***启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。

																																																																																																																																																																												
  1. /usr/local/mysql/bin/ndbd --initial

如果不是***启动,则执行下面的命令。

																																																																																																																																																																												
  1. /usr/local/mysql/bin/ndbd

3. 启动SQL结点

若MySQL服务没有运行,则在shell中运行以下命令:

																																																																																																																																																																												
  1. /usr/local/mysql/bin/mysqld_safe --user=mysql &

4. 启动测试

查看管理节点,启动成功

 

六、集群测试

1. 测试一

现在我们在其中一个SQL结点上进行相关数据库的创建,然后到另外一个SQL结点上看看数据是否同步。

在SQL结点1(192.168.124.144)上执行:

																																																																																																																																																																												
  1. shell> /usr/local/mysql/bin/mysql -u root -p
  2.  
  3. mysql>show databases;
  4.  
  5. mysql>create database aa;
  6.  
  7. mysql>use aa;
  8.  
  9. mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败
  10.  
  11. mysql> INSERT INTO ctest2 () VALUES (1);
  12.  
  13. mysql> SELECT * FROM ctest2;

然后在SQL结点2上看数据是否同步过来了

经过测试,在非master上创建数据,可以同步到master上

查看表的引擎是不是NDB,>show create table 表名;

2. 测试二

关闭一个数据节点 ,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来。

首先把数据结点1重启,然后在结点2上添加数据

在SQL结点2(192.168.124.145)上操作如下:

																																																																																																																																																																																										
  1. mysql> create database bb;
  2.  
  3. mysql> use bb;
  4.  
  5. mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;
  6.  
  7. mysql> use aa;
  8.  
  9. mysql> INSERT INTO ctest2 () VALUES (3333);
  10.  
  11. mysql> SELECT * FROM ctest2;

等数据结点1启动完毕,启动数据结点1的服务

																																																																																																																																																																																																						
  1. #/usr/local/mysql/bin/ndbd --initial#service mysqld start

然后登录进去查看数据

																																																																																																																																																																																																						
  1. # /usr/local/mysql/bin/mysql -u root –p

可以看到数据已经同步过来了,说明数据可以双向同步了。

七、关闭集群

1. 关闭管理节点和数据节点,只需要在管理节点(ClusterMgm--134)里执行:

																																																																																																																																																																																																						
  1. shell> /usr/local/mysql/bin/ndb_mgm -e shutdown

显示

																																																																																																																																																																																																						
  1. Connected to Management Server at: localhost:1186
  2.  
  3. 2 NDB Cluster node(s) have shutdown.
  4.  
  5. Disconnecting to allow management server to shutdown.

2. 然后关闭Sql节点(135,136),分别在2个节点里运行:

shell> /etc/init.d/mysql.server stop

Shutting down MySQL... SUCCESS!

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

延伸 · 阅读

精彩推荐