mysql容器集群搭建步骤_mysql-cluster集群搭建步骤

2.解压安装包

48304ba5e6f9fe08f3fa1abda7d326ab.png

#上传到服务器目录/usr/softwares并解压

tar -xzvf mysql-cluster-gpl-7.5.15-linux-glibc2.12-x86_64.tar.gz

#新建/usr/local/mysql目录

mkdir /usr/local/mysql

#将解压的文件重命名为mysql,并放到/usr/local/mysql目录下 mv mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64 /usr/local/mysql

48304ba5e6f9fe08f3fa1abda7d326ab.png

3.配置安装管理节点

1)新增管理节点命令

48304ba5e6f9fe08f3fa1abda7d326ab.png

#将文件ndb_mgm和ndb_mgmd拷贝到/usr/local/bin/目录下

cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/

#ndb_mgm,ndb客户端命令

#ndb_mgmd,ndb管理节点启动命令

#ndb_mgm是ndb_mgmd(MySQL Cluster Server)的客户端管理工具,通过它可以方便的检查Cluster的状态、启动备份、关闭Cluster等功能。

48304ba5e6f9fe08f3fa1abda7d326ab.png

2)修改管理节点的配置文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

#创建数据库集群配置文件的目录

mkdir /var/lib/mysql-cluster

#创建并编辑配置文件

vim /var/lib/mysql-cluster/config.ini

[ndbd default]

NoOfReplicas=2 #数据节点的个数

DataMemory=512M

IndexMemory=64M

[ndb_mgmd] #管理节点

NodeId=1

hostname=192.168.17.130

datadir=/var/lib/mysql-cluster/

[ndbd] #数据节点

NodeId=2

hostname=192.168.17.131

datadir=/usr/local/mysql/data/

[ndbd]

NodeId=3

hostname=192.168.17.132

datadir=/usr/local/mysql/data/

[mysqld] #sql节点

NodeId=4

hostname=192.168.17.133

[mysqld]

NodeId=5

hostname=192.168.17.134

48304ba5e6f9fe08f3fa1abda7d326ab.png

[NDBD DEFAULT]:表示每个数据节点的默认配置,在每个节点的[NDBD]中不用再写这些选项,只能有一个。

NoOfReplicas:副本数量,数据节点数必须是副本数的整数倍。

[NDB_MGMD]:表示管理节点的配置,只有一个,默认的对其他节点的端口是1186,故服务器需要开放1186端口。

[NDBD]:表示每个数据节点的配置,可以有多个,分别写上不同数据节点的IP地址。

[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址。

3)启动管理节点

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

ndb_mgmd是mysql cluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中。

3.配置安装数据节点

1)配置my.cnf文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

[mysqld]

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

character_set_server=utf8

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[mysql_cluster]

ndb-connectstring=192.168.17.130:1186

48304ba5e6f9fe08f3fa1abda7d326ab.png

2)新增用户和权限

48304ba5e6f9fe08f3fa1abda7d326ab.png

#分别添加mysql组和mysql用户

groupadd mysql

useradd mysql -g mysql

#进入mysql目录

cd /usr/local/mysql/

#把mysql的目录设置成所有者为root

chown -R root .

#创建data目录,并把data目录设置所有者为mysql

mkdir data

chown -R mysql data

#把mysql的目录改成所属组为mysql

chgrp -R mysql .

48304ba5e6f9fe08f3fa1abda7d326ab.png

3)安装数据库

48304ba5e6f9fe08f3fa1abda7d326ab.png

#执行安装脚本,初始化数据库

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

#注意其中用户为mysql的名称需要跟配置文件my.cnf中的user=mysql相同

#另外,这里一定要把--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 加上,

#否则会最后启动MySQL服务的时候会出现"table mysql.plugin doesn't exist","Can\'t open the mysql.plugin table. Please run mysql_upgrade to create it."错误,以及"PID"获取失败的错误

48304ba5e6f9fe08f3fa1abda7d326ab.png

在安装的打印信息最后,有首次登陆的密码,需要特别注意;

4)设置mysqld服务开机自启

48304ba5e6f9fe08f3fa1abda7d326ab.png

#加入到service服务

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

#加入到开机自启动列表

chkconfig --add mysqld

48304ba5e6f9fe08f3fa1abda7d326ab.png

5)修改数据库密码

48304ba5e6f9fe08f3fa1abda7d326ab.png

#启动数据库

[root@localhost bin]# service mysqld start

#进入客户端

[root@localhost bin]# ./mysql -uroot -p

Enter password:这里输入之前的临时密码

#修改密码

mysql> set password=password('新密码');

#注意此密码必须要与其他服务器上的数据库设置的密码相同

48304ba5e6f9fe08f3fa1abda7d326ab.png

6)启动数据节点

cd /usr/local/mysql

./bin/ndbd --initial

#非第一次启动,命令如下

./bin/ndbd

安装后第一次启动数据节点时要加上--initial参数。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。

4.配置安装sql节点

1)配置my.cnf文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

[mysqld]

ndbcluster

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

character_set_server=utf8

default-storage-engine=ndbcluster

port=3306

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[mysql_cluster]

ndb-connectstring=192.168.17.130:1186

48304ba5e6f9fe08f3fa1abda7d326ab.png

2)安装mysql数据库

3)启动sql节点

service mysqld start

如果提示:mysql:mysql is neither service nor target!?报错,则执行:

systemctl unmask mysqld

service mysql start

5.测试

1)管理节点查看

48304ba5e6f9fe08f3fa1abda7d326ab.png

ndb_mgm

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2 @192.168.17.131 (mysql-5.7.23 ndb-7.6.7, Nodegroup: 0, *)

id=3 @192.168.17.132 (mysql-5.7.23 ndb-7.6.7, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.17.130 (mysql-5.7.23 ndb-7.6.7)

[mysqld(API)] 2 node(s)

id=4 @192.168.17.133 (mysql-5.7.23 ndb-7.6.7)

id=5 @192.168.17.134 (mysql-5.7.23 ndb-7.6.7)

48304ba5e6f9fe08f3fa1abda7d326ab.png

2)测试数据

48304ba5e6f9fe08f3fa1abda7d326ab.png

#登陆数据库

cd /usr/local/mysql

./bin/mysql -uroot -p

Enter password:输入密码

#创建数据库mytest

mysql> create database mytest;

#切换到mytest数据库

mysql> use mytest;

#创建表结构sys_myfirst

mysql> create table sys_myfirst(id varchar(36) primary key, name varchar(100), memo varchar(255));

#在sys_myfirst中添加几条数据

mysql> insert into sys_myfirst(id, name, memo) values('1','test1','hello world!');

mysql> insert into sys_myfirst(id, name, memo) values('2','test2','hello world haha!');

mysql> insert into sys_myfirst(id, name, memo) values('3','test3','hello world hehe!');

#查看数据

mysql> select * from sys_myfirst;

+----+-------+-------------------+

| id | name | memo |

+----+-------+-------------------+

| 2 | test2 | hello world haha! |

| 1 | test1 | hello world! |

| 3 | test3 | hello world hehe! |

+----+-------+-------------------+

3 rows in set (0.00 sec)

48304ba5e6f9fe08f3fa1abda7d326ab.png

3)在另一个sql节点查询

48304ba5e6f9fe08f3fa1abda7d326ab.png

#这里就省去登陆mysql客户端的步骤了

#查看数据

mysql> select * from sys_myfirst;

+----+-------+-------------------+

| id | name | memo |

+----+-------+-------------------+

| 1 | test1 | hello world! |

| 3 | test3 | hello world hehe! |

| 2 | test2 | hello world haha! |

+----+-------+-------------------+

3 rows in set (0.00 sec)

48304ba5e6f9fe08f3fa1abda7d326ab.png

6.启动和停止管理节点

启动顺序:管理节点—数据节点—sql节点

停止顺序:管理节点(会同时停止管理节点和数据节点)—sql节点

停止管理节点:

48304ba5e6f9fe08f3fa1abda7d326ab.png

#第一种方法

ndb_mgm -e shutdown

#第二种方法

ndb_mgm

ndb_mgm> shutdown;

48304ba5e6f9fe08f3fa1abda7d326ab.png

停止sql节点:

service mysqld stop

7.数据存放位置

在数据节点上通过lsof -c ndb命令(以root身份运行)来找出包含ndb进程所有打开的文件,

发现其真正存储数据的位置在mysql/data/ndb_3_fs/下面(3数字是config.ini的节点id),

各个文件夹中的文件是以16.7M为单位存储的,临时文件达到16.7M后就另起一个。

8.spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问:

参考文档:

1.mysql-cluster集群搭建:

2.增加管理节点:

3.增加数据节点:

4.官方文档:

5.mysqlcluster+haproxy+keepalived

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接 MySQL Cluster 集群可以通过两种方式:使用 MySQL Shell 或者使用 MySQL Connector/Net。以下是连接 MySQL Cluster 集群的步骤: ### 使用 MySQL Shell 连接 1. 打开 MySQL Shell,输入以下命令连接到 MySQL Cluster: ``` mysqlsh root@<ndb_mgmd_ip>:<ndb_mgmd_port> ``` 其中,`root` 是 MySQL 的用户名,`<ndb_mgmd_ip>` 是 MySQL Cluster Management Server 的 IP 地址,`<ndb_mgmd_port>` 是 MySQL Cluster Management Server 的端口号(默认为 1186)。 2. 输入密码登录 MySQL。 3. 输入以下命令查看 MySQL Cluster 集群节点的状态: ``` dba.getCluster().status() ``` 如果输出的信息包含了所有的 MySQL Cluster 节点,说明连接成功。 ### 使用 MySQL Connector/Net 连接 1. 在 Visual Studio 中创建一个新的 C# 项目。 2. 在项目中添加 MySQL Connector/Net。 3. 在代码中引入 MySQL Connector/Net 的命名空间: ``` using MySql.Data.MySqlClient; ``` 4. 使用以下代码连接到 MySQL Cluster: ``` string connectionString = "server=<ndb_mgmd_ip>;port=<ndb_mgmd_port>;database=<database_name>;uid=<username>;pwd=<password>"; MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); ``` 其中,`<ndb_mgmd_ip>` 是 MySQL Cluster Management Server 的 IP 地址,`<ndb_mgmd_port>` 是 MySQL Cluster Management Server 的端口号(默认为 1186),`<database_name>` 是要连接的数据库名称,`<username>` 是 MySQL 的用户名,`<password>` 是 MySQL 的密码。 5. 使用 `connection` 对象执行 SQL 查询等操作。 以上是连接 MySQL Cluster 集群的方法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值