mysql cluster 7.4 白皮书_Mysql Cluster7.4.12分布式集群搭建

集群规划:节点IP ADDRESS

Management Server (ndb_mgmd)192.168.6.203

data nodes (ndbd)192.168.6.204

192.168.6.205

SQL node (mysqld)192.168.6.204

192.168.6.205

Mysql Cluster版本:

MySQL Cluster NDB 7.4.12 (5.6.31-ndb-7.4.12),

集群部署:

1、环境清理及安装:

如果已经存在mysql相关的安装或者依赖包,则先清理mysql的相关安装和依赖

检查mysql是否存在mysql相关依赖包:rpm -qa | grep mysql*

如存在:mysql-libs-5.1.66-2.el6_3.x86_64

则卸载mysql并删除依赖:yum -y remove mysql

rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64

......

2、集群安装:

管理节点:

192.168.6.203rpm -ivh MySQL-Cluster-server-gpl-7.4.12-1.el6.x86_64.rpm

数据节点 和 mysql server:

192.168.6.204

192.168.6.205rpm -ivh MySQL-Cluster-server-gpl-7.4.12-1.el6.x86_64.rpm

rpm -ivh MySQL-Cluster-client-gpl-7.4.12-1.el6.x86_64.rpm

配置文件:

管理节点配置文件:

在192.168.6.203上创建/var/lib/mysql-cluster/config.ini ,内容如下[NDB_MGMD DEFAULT]

Portnumber=1186

[NDB_MGMD]

NodeId=10

HostName=192.168.6.203

DataDir=/var/lib/mysql-cluster/

Portnumber=1186

[TCP DEFAULT]

SendBufferMemory=4M

ReceiveBufferMemory=4M

[NDBD DEFAULT]

NoOfReplicas=2    # Number of replicas

DataMemory=800M    # How much memory to allocate for data storage

IndexMemory=100M   # How much memory to allocate for index storage

# For DataMemory and IndexMemory, we have used the

# default values. Since the "world" database takes up

# only about 500KB, this should be more than enough for

# this example Cluster setup.

[NDBD]

NodeId=20

HostName=192.168.6.204

DataDir=/var/lib/mysql/

[NDBD]

NodeId=21

HostName=192.168.6.205

DataDir=/var/lib/mysql/

[MYSQLD DEFAULT]

[mysqld]

hostname=192.168.6.204

[mysqld]

hostname=192.168.6.205

数据节点和mysqld节点:

在192.168.6.20[4,5]上分别创建/etc/my.cnf[mysqld]

# Options for mysqld process:

ndbcluster                      # run NDB storage engine

ndb-connectstring="192.168.6.203:1186"

[mysql_cluster]

# # Options for MySQL Cluster processes:

ndb-connectstring="192.168.6.203:1186"  # location of management server

3、启动集群:

准备工作:集群每台机器 关闭防火墙;设置selinux的SELINUX=disabled;

先启动管理节点:

192.168.6.203上启动管理节点:ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

再启动数据节点:

192.168.6.20[4,5]上启动数据节点:ndbd

最后192.168.6.20[4,5]启动mysqld服务:mysqld_safe --user=mysql &

通过管理节点,查看节点连接状态:shell>  ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Connected to Management Server at: 192.168.6.203:1186

Cluster Configuration

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

[ndbd(NDB)]2 node(s)

id=20@192.168.6.204  (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0, *)

id=21@192.168.6.205  (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0)

[ndb_mgmd(MGM)]1 node(s)

id=10@192.168.6.203  (mysql-5.6.31 ndb-7.4.12)

[mysqld(API)]2 node(s)

id=22@192.168.6.204  (mysql-5.6.31 ndb-7.4.12)

id=23@192.168.6.205  (mysql-5.6.31 ndb-7.4.12)

ndb_mgm>

看到上面的状况,则说明集群启动成功。

进入mysqld,查看mysql是否已经支持分布式存储引擎ndbclustershell> mysql -uroot -p

mysql> set password=password('xxxxxx')  # 第一次登陆需要修改root 用户的登录密码

mysql> show engines\g;

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

| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |

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

| ndbcluster         | YES     | Clustered, fault-tolerant tables                               | YES          | NO   | NO         |

| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |

| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |

| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |

| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |

| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |

| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |

| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |

| ndbinfo            | YES     | MySQL Cluster system information storage engine                | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |

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

11 rows in set (0.00 sec)

4、测试数据同步:

在192.168.6.204上创建一张t2表:mysql> use test;

Database changed

mysql> create table t2(id int, name varchar(20)) engine=ndbcluster;

Query OK, 0 rows affected (0.10 sec)

mysql> desc t2;

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

| Field | Type        | Null | Key | Default | Extra |

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

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

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

2 rows in set (0.00 sec)

在192.168.6.205上向表t2插入一条数据:mysql> desc t2;

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

| Field | Type        | Null | Key | Default | Extra |

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

| id    | int(11)     | YES  |     | NULL    |       |

| name  | varchar(20) | YES  |     | NULL    |       |

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

2 rows in set (0.00 sec)

mysql> insert into t2 values(1,'lisan');

Query OK, 1 row affected (0.00 sec)

mysql> select * from t2;

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

| id   | name  |

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

|    1 | lisan |

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

1 row in set (0.00 sec)

在204上查看t2表:mysql> select * from t2;

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

| id   | name  |

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

|    1 | lisan |

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

1 row in set (0.00 sec)

看到上面结果,则说明分布式mysql数据同步成功。

安装过程中遇到的问题:

1、Unable to connect with connect string: nodeid=0,localhost:1186  Retrying every 5 seconds. Attempts left: 2 1, failed.

可能原因:软件包安装错误(多装或者是少装都会出错);config.ini或者my.cnf配置文件有误;

2、Unable to connect with connect string: nodeid=0,192.168.1.102:1186   Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.

可能原因:防火墙开启,阻止集群数据通信;selinux开启,可以通过setenforce  0 关闭;

以下是一个简单的PHP连接MySQL数据库的实验报告。 一、实验目的 通过本实验,掌握PHP连接MySQL数据库的基本方法及操作。 二、实验环境 操作系统:Windows 10 64位 软件环境:XAMPP 7.4.12 三、实验步骤 1. 安装XAMPP并启动Apache和MySQL服务。 2. 创建一个名为“test”的MySQL数据库,并创建一个名为“students”的数据表。 3. 编写PHP代码连接MySQL数据库。 4. 运行PHP代码并输出结果。 具体代码如下: ``` <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 插入数据 $sql = "INSERT INTO students (name, age, gender) VALUES ('Tom', '18', 'male')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } // 查询数据 $sql = "SELECT id, name, age, gender FROM students"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. " - Gender: " . $row["gender"]. "<br>"; } } else { echo "0 结果"; } // 关闭连接 $conn->close(); ?> ``` 四、实验结果 运行上述PHP代码后,输出结果如下: ``` 新记录插入成功 id: 1 - Name: Tom - Age: 18 - Gender: male ``` 说明PHP成功连接MySQL数据库,并且成功插入了一条数据并查询出来了。 五、实验总结 通过本实验,我掌握了PHP连接MySQL数据库的基本方法及操作,能够实现数据的插入和查询。同时,我还了解到了XAMPP的基本使用方法,可以快速搭建本地开发环境。在今后的开发中,我将能够灵活运用这些知识,更好地完成项目开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值