MySQL学习笔记03MySQL集群的装置配备澳门美高梅手机网站

1.1.8. 关闭集群

执行以下命令关闭集群:

ndb_mgmd -e shutdown

 

实施以下命令关闭SQL节点的mysqld服务:

mysql -uroot -p -e shutdown

 

1.2 连接副本集
// 1. 直接连接
MongoClient mongoCli1ent = new MongoClient(
          Arrays.asList(new ServerAddress("localhost", 27017),
                        new ServerAddress("localhost", 27018)),
          Arrays.asList(MongoCredential.createCredential(user, authDb, pwd.toCharArray())));

// 2. 使用连接字符串
// mongodb://user:pwd@host:port, host:port/?authSource=db&replicaSet=rs&slaveOk=true
String conStr = "mongodb://{0}:{1}@{2}:{3},{4}:{5}/?authSource={6}&replicaSet={7}&slaveOk=true";
MongoClientURI uri=new MongoClientURI(MessageFormat.format(conStr,"admin","111","host1","27017","host2","27018","admin","rs0"));
MongoClient mongoClient = new MongoClient(uri);

1.1.7. 集群启动脚本

 

经过这种图形化的Web应用来配置集群极度便利,可是每一次启动集群皆以是家伙就生不便利,而且说不定会面盖于主机中手工修改的集群参数。此时编制一个略的脚本即可缓解者问题。

累计有5只本子文件:

[d@192.168.197.142:/opt/mysql_cluster/home]$ls

start_ndb_mgmd.sh  启动管制节点。

start_ndbmtd1.sh    启动数量节点1。

start_ndbmtd2.sh    启动数量节点2。

start_mysqld.sh      启动SQL节点。

cluster_start.sh     启动全套集群的究竟决定脚本文件。

 

各样脚本的情如下:

[d@192.168.197.142:/opt/mysql_cluster/home]$cat start_ndb_mgmd.sh

#!/bin/bash

/usr/sbin/ndb_mgmd –initial –ndb-nodeid=49
–config-dir=/opt/mysql_cluster/1/data/49/
–config-file=/opt/mysql_cluster/1/data/49/config.ini

 

[d@192.168.197.142:/opt/mysql_cluster/home]$cat start_ndbmtd1.sh

#!/bin/bash

/usr/sbin/ndbmtd –ndb-nodeid=1 –ndb-connectstring=mc1.coe2coe.me:1186,

 

[d@192.168.197.142:/opt/mysql_cluster/home]$cat start_ndbmtd2.sh

#!/bin/bash

/usr/sbin/ndbmtd –ndb-nodeid=2 –ndb-connectstring=mc1.coe2coe.me:1186,

 

[d@192.168.197.142:/opt/mysql_cluster/home]$cat start_mysqld.sh

#!/bin/bash

/usr/sbin/mysqld –defaults-file=/opt/mysql_cluster/3/data/61/my.cnf &

 

[d@192.168.197.142:/opt/mysql_cluster/home]$cat cluster_start.sh

#!/bin/bash

 

echo “Starting ndb_mgmd …..”

/opt/mysql_cluster/home/start_ndb_mgmd.sh

sleep 5

 

echo “Starting ndbmtd1 …..”

/opt/mysql_cluster/home/start_ndbmtd1.sh

sleep 3

 

echo “Starting ndbmtd2 ……”

/opt/mysql_cluster/home/start_ndbmtd2.sh

 

sleep 3

 

echo “Starting mysqld ……”

/opt/mysql_cluster/home/start_mysqld.sh

 

echo “Done.”

echo “===========================”

 

由此调整cluster_start.sh脚本的具体内容,能够控制以某台主机及待启动的节点。

 

 

以享有节点部署在同台主机及时不时,运行启动脚本:

[d@192.168.197.142:/opt/mysql_cluster/home]$./cluster_start.sh

Starting ndb_mgmd …..

MySQL Cluster Management Server mysql-5.7.19 ndb-7.5.7

2017-07-29 12:44:02 [MgmtSrvr] WARNING  — at line 22: [DB]
BackupMemory is deprecated, use Total memory allocated for backups per
node (in bytes) instead

Starting ndbmtd1 …..

2017-07-29 12:44:08 [ndbd] INFO     — Angel connected to
‘mc1.coe2coe.me:1186’

2017-07-29 12:44:08 [ndbd] INFO     — Angel allocated nodeid: 1

Starting ndbmtd2 ……

2017-07-29 12:44:11 [ndbd] INFO     — Angel connected to
‘mc1.coe2coe.me:1186’

2017-07-29 12:44:11 [ndbd] INFO     — Angel allocated nodeid: 2

Starting mysqld ……

Done.

===========================

集群启动成功。

 

 

1. 连接到MongoDB

  首先保证 mongodb
启动了身份验证效率(不启动直接以IP,Port连接即可)。连接目的而分为两种植:单机,集群和副本集。

1.1.6. 集群状态

 

(1)节点状态。

使用ndb_mgm管理工具查看集群状态:

ndb_mgm -e show

Connected to Management Server at: localhost:1186

Cluster Configuration


[ndbd(NDB)] 2 node(s)

id=1 @192.168.197.142  (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0, *)

id=2 @192.168.197.142  (mysql-5.7.19 ndb-7.5.7, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=49 @192.168.197.142  (mysql-5.7.19 ndb-7.5.7)

 

[mysqld(API)] 1 node(s)

id=61 @192.168.197.142  (mysql-5.7.19 ndb-7.5.7)

 

曾出4独节点处运行状态,包括1个管理节点,1单SQL节点和2单数据节点。MySQL集群已成功启动运行了。

 

 

(2)进程状态:

[d@192.168.197.142:/opt/mysql_cluster]$ps -elf|grep ndb

1 S d          2334      1  1  80   0 – 208795 poll_s 11:44 ?
      00:00:30 /usr/sbin/ndb_mgmd –ndb-nodeid=49
–config-dir=/opt/mysql_cluster/1/data/49/
–config-file=/opt/mysql_cluster/1/data/49/config.ini

1 S d          2348      1  0  80   0 –  8911 poll_s 11:44 ?
       00:00:00 /usr/sbin/ndbmtd –ndb-nodeid=1
–ndb-connectstring=mc1.coe2coe.me:1186,

1 S d          2349   2348  3  80   0 – 172985 ep_pol 11:44 ?
      00:01:29 /usr/sbin/ndbmtd –ndb-nodeid=1
–ndb-connectstring=mc1.coe2coe.me:1186,

1 S d          2391      1  0  80   0 –  8911 poll_s 11:44 ?
       00:00:00 /usr/sbin/ndbmtd –ndb-nodeid=2
–ndb-connectstring=mc1.coe2coe.me:1186,

1 S d          2392   2391  3  80   0 – 189369 ep_pol 11:44 ?
      00:01:27 /usr/sbin/ndbmtd –ndb-nodeid=2
–ndb-connectstring=mc1.coe2coe.me:1186,

0 S d          2706   2135  0  80   0 –  4154 pipe_w 12:25 pts/1
   00:00:00 grep –color=auto ndb

[d@192.168.197.142:/opt/mysql_cluster]$ps -elf|grep mysqld

0 S d          2635      1  1  80   0 – 390524 poll_s 11:51 pts/1
  00:00:26 /usr/sbin/mysqld
–defaults-file=/opt/mysql_cluster/3/data/61/my.cnf

0 S d          2708   2135  0  80   0 –  4154 pipe_w 12:25 pts/1
   00:00:00 grep –color=auto mysqld

 

足见到:

起1独管理节点的ndb_mgmd进程,进程ID为2334。

出2单数据节点的ndbmtd进程,其中节点1的2独过程ID分别吗2349,2348;节点2的2个经过ID分别吗2391,2392。

有1个SQL节点的mysqld进程,进程ID为2635。

 

 

(3)TCP连接状态:

(a)ndb_mgmd相关连接。

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndb_mgmd

tcp        0      0 0.0.0.0:1186            0.0.0.0:*
              LISTEN      2334/ndb_mgmd   

tcp        0      0 192.168.197.142:1186    192.168.197.142:38285
  ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 127.0.0.1:40600         127.0.0.1:1186
         ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 192.168.197.142:1186    192.168.197.142:38284
  ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 192.168.197.142:1186    192.168.197.142:38288
  ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 192.168.197.142:1186    192.168.197.142:38286
  ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 192.168.197.142:1186    192.168.197.142:38283
  ESTABLISHED 2334/ndb_mgmd   

tcp        0      0 127.0.0.1:1186          127.0.0.1:40600
        ESTABLISHED 2334/ndb_mgmd

得看到以下消息:

  管理节点的劳务ndb_mgmd进程在1186端口监听,有5单来源192.168.197.142底连日。

 

(b)ndbmtd相关连接。

多少节点建立的监听端口:

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndbmtd |grep LISTEN

tcp        0      0 192.168.197.142:35334   0.0.0.0:*
              LISTEN      2349/ndbmtd     

tcp        0      0 192.168.197.142:49677   0.0.0.0:*
              LISTEN      2392/ndbmtd     

tcp        0      0 192.168.197.142:40758   0.0.0.0:*
              LISTEN      2349/ndbmtd

 

数量节点和治本节点的连续:

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndbmtd |grep 1186

tcp        0      0 192.168.197.142:38285   192.168.197.142:1186
   ESTABLISHED 2391/ndbmtd     

tcp        0      0 192.168.197.142:38286   192.168.197.142:1186
   ESTABLISHED 2392/ndbmtd     

tcp        0      0 192.168.197.142:38283   192.168.197.142:1186
   ESTABLISHED 2348/ndbmtd     

tcp        0      0 192.168.197.142:38284   192.168.197.142:1186
   ESTABLISHED 2349/ndbmtd  

 

数码节点内的连天:

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndbmtd |grep 35334

tcp        0      0 192.168.197.142:35334   0.0.0.0:*
              LISTEN      2349/ndbmtd     

tcp        0      0 192.168.197.142:35334   192.168.197.142:53294
  ESTABLISHED 2349/ndbmtd     

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndbmtd |grep 49677

tcp        0      0 192.168.197.142:49677   0.0.0.0:*
              LISTEN      2392/ndbmtd     

tcp        0      0 192.168.197.142:49677   192.168.197.142:46707
  ESTABLISHED 2392/ndbmtd     

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep ndbmtd |grep 40758

tcp        0      0 192.168.197.142:40758   0.0.0.0:*
              LISTEN      2349/ndbmtd     

tcp        0      0 192.168.197.142:60231   192.168.197.142:40758
  ESTABLISHED 2392/ndbmtd     

tcp        0      0 192.168.197.142:40758   192.168.197.142:60231
  ESTABLISHED 2349/ndbmtd  

 

足见见以下消息:

数节点的4单过程各自与管理节点建立了1只TCP连接,数据节点内吧起了TCP连接。

 

(c)mysqld相关连接。

[d@192.168.197.142:/opt/mysql_cluster]$sudo netstat -nap |grep tcp
 |grep mysqld

tcp        0      0 0.0.0.0:3306            0.0.0.0:*
              LISTEN      2635/mysqld     

tcp        0      0 192.168.197.142:46707   192.168.197.142:49677
  ESTABLISHED 2635/mysqld     

tcp        0      0 192.168.197.142:38288   192.168.197.142:1186
   ESTABLISHED 2635/mysqld     

tcp        0      0 192.168.197.142:53294   192.168.197.142:35334
  ESTABLISHED 2635/mysqld  

美观来,SQL节点建立了3306端口底监听,同时连接至了2单数据节点。

 

 

(4)使用sql查询节点内的连续状态。

mysql> select node_id,remote_node_id,status from
ndbinfo.transporters;

+———+—————-+————–+

| node_id | remote_node_id | status       |

+———+—————-+————–+

|       1 |              1 | DISCONNECTED |

|       1 |              2 | CONNECTED    |

|       1 |             49 | CONNECTED    |

|       1 |             61 | CONNECTED    |

|       2 |              1 | CONNECTED    |

|       2 |              2 | DISCONNECTED |

|       2 |             49 | CONNECTED    |

|       2 |             61 | CONNECTED    |

+———+—————-+————–+

8 rows in set (0.01 sec)

 

可以看出,四只数据节点(1与2)分别与此外具有节点(包括管制节点49,SQL节点61)都立了连接。

 

 

1.3 关于连接相关的参数

  不管是接纳字符串连接,依然直接连接都得顺便一些参数,间接连接时用
MongoClientOptions 类的builder()构造,字符串直接接纳 &
拼接在末端就是举行。常用的参数如下:

replicaSet=name 副本集名称 ssl=true|false 是否使用ssl
connectTimeoutMS=ms 连接超时时间 socketTimeoutMS=ms socket超时时间
maxPoolSize=n 连接池大小 safe=true|false 驱动是否发送getLastError
journal=true|false 是否等待将日志刷到磁盘    
authMechanism= 身份验证方式 验证方式有SCRAM-SHA-1 MONGODB-X509,MONGO-CR,etc
authSource=string 验证数据库,默认admin 采用指定数据库的验证方式 3.0之后,默认验证方式为 SCRAM-SHA-1.

重新多详细的参数请见:MongoClientURI

1.1.4. 管住节点配置文件

治本节点的安排文件包括:

管制节点的参数。

数节点的参数。

SQL节点的参数。

TCP参数。

 

 

管制节点的布文件的具体内容如下:

 

[d@192.168.197.142:/opt/mysql_cluster/1/data/49]$cat config.ini

#

# Configuration file for MyCluster

#

 

[NDB_MGMD DEFAULT]

Portnumber=1186

 

[NDB_MGMD]

NodeId=49

HostName=mc1.coe2coe.me

DataDir=/opt/mysql_cluster/1/data/49/

Portnumber=1186

 

[TCP DEFAULT]

SendBufferMemory=2M

ReceiveBufferMemory=2M

 

[NDBD DEFAULT]

BackupMaxWriteSize=1M

BackupDataBufferSize=16M

BackupLogBufferSize=4M

BackupMemory=20M

BackupReportFrequency=10

MemReportFrequency=30

LogLevelStartup=15

LogLevelShutdown=15

LogLevelCheckpoint=8

LogLevelNodeRestart=15

DataMemory=64M

IndexMemory=64M

MaxNoOfTables=4096

MaxNoOfTriggers=3500

NoOfReplicas=2

StringMemory=25

DiskPageBufferMemory=64M

SharedGlobalMemory=64M

LongMessageBuffer=32M

MaxNoOfConcurrentTransactions=16384

BatchSizePerLocalScan=512

FragmentLogFileSize=64M

NoOfFragmentLogFiles=16

RedoBuffer=32M

MaxNoOfExecutionThreads=2

StopOnError=false

LockPagesInMainMemory=1

TimeBetweenEpochsTimeout=32000

TimeBetweenWatchdogCheckInitial=60000

TransactionInactiveTimeout=60000

HeartbeatIntervalDbDb=15000

HeartbeatIntervalDbApi=15000

 

[NDBD]

NodeId=1

HostName=mc4.coe2coe.me

DataDir=/opt/mysql_cluster/4/data/1/

 

[NDBD]

NodeId=2

HostName=mc5.coe2coe.me

DataDir=/opt/mysql_cluster/5/data/2/

 

[MYSQLD DEFAULT]

 

[MYSQLD]

NodeId=61

HostName=mc3.coe2coe.me

 

 

2. 文档的 CURD 操作

  在展开 CURD 操作时,有几乎独常因而之扶助静态类:Filters, Sorts,
Projections,Updates,详细用法请查看:Builders

(1)文档的插入

// 获取待插入集合 mycol
MongoDatabase mydb = mongoClient.getDatabase("myDb");
MongoCollection<Document> mycol =  mydb.getCollection("myCol");
// 生成一个文档
Document doc = new Document();
doc.put("name", "cyhe");
doc.put("blog", "http://www.cnblogs.com/cyhe/");
// 也可以使用链式风格构建
new Document("id",1).append("name", "cyhe");// ... etc
// 也可以直接将 JSON 转成 BSON
doc = Document.parse("{\"name\":\"cyhe\",\"blog\":\"http://www.cnblogs.com/cyhe/\"}");
// 插入
mycol.insertOne(doc);
// 批量插入
mycol.insertMany(new ArrayList<Document>());

(2)文档的觅

// 查询集合所有文档
List<Document> docs = mycol.find().into(new ArrayList<Document>());
// 直接导入 import static com.mongodb.client.model.Filters.*; 就可以直接使用 and eq 等静态方法      
// 查询 age = 20 的文档
Document doc = mycol.find(Filters.eq("age", 20)).first();
// 查询 10<age<20 的文档 返回一个游标
MongoCursor<Document> cur=mycol.find(Filters.and(Filters.gt("age", 10), Filters.lt("age", 20))).iterator();

(3)文档的换代和去

// 查找并删除名称为 cyhe 的文档
mycol.findOneAndDelete(Filters.eq("name", "cyhe"));
// 查找并重命名
mycol.findOneAndUpdate(Filters.eq("name", "cyhe"), Updates.set("name", "wqq"));
// 小于10的都加1
mycol.updateMany(Filters.lt("size", 10), Updates.inc("size", 1));
// 删除 age 大于 110 的文档
mycol.deleteOne(Filters.gt("age", "110"));
  1. 文档的上传和下载

  于Mongodb中,普通文档最深吗16M,对于图片,附件来说即便显示比小了,mongodb的处理模式就是用
GridFS 分块存储。

// GridFS 默认的名字为 fs,使用默认名称连接
GridFSBucket gridFSBucket = GridFSBuckets.create(mydb);
// 使用指定名称连接
GridFSBucket gridFSBucket1 = GridFSBuckets.create(mydb, "imags");
// 上传文件
// ==============================================================================================
InputStream streamToUploadFrom = new FileInputStream(new File("/tmp/mongodb-tutorial.pdf"));
// 自定义参数
GridFSUploadOptions options = new GridFSUploadOptions()
                                    .chunkSizeBytes(1024)
                                    .metadata(new Document("type", "presentation"));
ObjectId fileId = gridFSBucket.uploadFromStream("mongodb-tutorial", streamToUploadFrom, options);
// ===============================================================================================
// 或者使用 GridFSUploadStream
byte[] data = "Data to upload into GridFS".getBytes(StandardCharsets.UTF_8);
GridFSUploadStream uploadStream = gridFSBucket.openUploadStream("sampleData", options);
uploadStream.write(data);
uploadStream.close();
System.out.println("The fileId of the uploaded file is: " + uploadStream.getFileId().toHexString());
// ===============================================================================================
// 下载文件
// ===============================================================================================
// 根据生成的 ObjectId 下载
FileOutputStream streamToDownloadTo = new FileOutputStream("/tmp/mongodb-tutorial.pdf");
gridFSBucket.downloadToStream(fileId, streamToDownloadTo);
streamToDownloadTo.close();
System.out.println(streamToDownloadTo.toString());
// ===============================================================================================
// 根据文件名称下载
FileOutputStream streamToDownloadTo = new FileOutputStream("/tmp/mongodb-tutorial.pdf");
GridFSDownloadByNameOptions downloadOptions = new GridFSDownloadByNameOptions().revision(0);
gridFSBucket.downloadToStreamByName("mongodb-tutorial", streamToDownloadTo, downloadOptions);
streamToDownloadTo.close();
// ===============================================================================================
// 使用 GridFSDownloadStream 根据 ObjectId 下载
GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream(fileId);
int fileLength = (int) downloadStream.getGridFSFile().getLength();
byte[] bytesToWriteTo = new byte[fileLength];
downloadStream.read(bytesToWriteTo);
downloadStream.close();
System.out.println(new String(bytesToWriteTo, StandardCharsets.UTF_8));
// ===============================================================================================
// 使用 GridFSDownloadStream 根据 名称 下载
GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStreamByName("sampleData");
int fileLength = (int) downloadStream.getGridFSFile().getLength();
byte[] bytesToWriteTo = new byte[fileLength];
downloadStream.read(bytesToWriteTo);
downloadStream.close();
System.out.println(new String(bytesToWriteTo, StandardCharsets.UTF_8));

  本文就是 Mongodb
操作的冰山一角,更多的用法,会当将来的实战中不断更新完善。更多用法及 API
介绍,详见
MongoDB-Java-3.2

1.1.5. SQL节点的部署文件

 

SQL节点的布置文件具体内容如下:

[d@192.168.197.142:/opt/mysql_cluster]$cat  3/data/61/my.cnf

#

# Configuration file for MyCluster

# Generated by mcc

#

[mysqld]

log-error=mysqld.61.err

datadir=”/opt/mysql_cluster/3/data/61/data”

tmpdir=”/opt/mysql_cluster/3/data/61/tmp”

basedir=”/usr/”

bind-address=0.0.0.0

port=3306

ndbcluster=on

ndb-nodeid=61

ndb-connectstring=mc1.coe2coe.me:1186,

socket=”/opt/mysql_cluster/3/data/61/mysql.socket”

 

 

  • 争连接MongoDB
  • 文档的 CURD 操作
  • 文档的上传和下载

1.1.3. 布集群

MySQL Cluster安装包安装完毕后,提供了一个web程序: /usr/bin/ndb_setup.py。那一个程序用于快捷部署MySQL Cluster。

 

(1)运行ndb_setup.py。

ndb_setup.py

Running out of install dir: /usr/bin

Starting web server on port 8081

deathkey=319875

Press CTRL+C to stop web server.

Navigate to http://localhost:8081/welcome.html to launch the
application.

 

(2)在浏览器被得布局。

 

用相比较高版本的IE,Firefox,或chrome浏览器访问http://localhost:8081/welcome.html。

(a)接纳创立新集群。

第一届使用时选拔:Create New MySQL
Cluster创设新的集群。在布置后,需要改现有集群时,使用Continue Previous Cluster
Configuration。

 澳门美高梅手机网站 1

 

(b)定义SSH用户称与密码。

 澳门美高梅手机网站 2

(c)定义集众多中之主机。

每个主机能够采用IP地址或者主机名。使用主机名让部署复杂集群时尤其灵活。添加新主机后会自动测试,需要主机开放了sshd服务。测试成功会面以Resource栏突显OK,否则突显FAILED。

 澳门美高梅手机网站 3

 

 

(d)分配节点。

当概念了主机后,需要用主机分配也集群的节点。一个主机可以分配成五个节点。主机是大体及的定义,节点是一个逻辑概念。整个集众多中,至少用是一个管理节点,一个数额节点,一个SQL节点。

 澳门美高梅手机网站 4

 

(e)定义节点参数。

节点参数保持默认状态即可,通常不待改。

 澳门美高梅手机网站 5

 

 

(f)部署与开行服务。

当安排往日,提出优先住掉安装过程被自动启动之MySQL
Cluster Server服务(mysqld)。

好直接当此画面中,将眼前设置的节点及其参数部署到相应的主机上,前提条件是这多少个主机及都曾经装了MySQL
Cluster相关软件。此时还足以同时开动那个劳动。

 澳门美高梅手机网站 6

 

 

 

(g)部署成功后集群目录结构:

前方部署的顺序主机mc1到mc5通过域名服务器映射到和一个物理机械(192.168.197.142)上之后,得到方方面面集群的完好目录结构如下,包含了4独节点。

/opt/mysql_cluster

   .

   |-1

   |—data

   |—–49

   |-3

   |—data

   |—–61

   |——-data

   |———coe2coe

   |———mysql

   |———ndbinfo

   |———performance_schema

   |———sys

   |——-mysql

   |——-test

   |——-tmp

   |-4

   |—data

   |—–1

   |——-ndb_1_fs

   |———D1

   |———–DBDICT

   |————-T1

   |————-T2

   |————-T3

   |————-T4

   |————-T5

   |————-T6

   |————-T7

   |————-T8

   |————-T9

   |———–DBDIH

   |———D10

   |———–DBLQH

   |———D11

   |———–DBLQH

   |———D2

   |———–DBDICT

   |————-T1

   |————-T2

   |————-T3

   |————-T4

   |————-T5

   |————-T6

   |————-T7

   |————-T8

   |————-T9

   |———–DBDIH

   |———D8

   |———–DBLQH

   |———D9

   |———–DBLQH

   |———LCP

   |———–0

   |-5

   |—data

   |—–2

   |——-ndb_2_fs

   |———D1

   |———–DBDICT

   |————-T1

   |————-T2

   |————-T3

   |————-T4

   |————-T5

   |————-T6

   |————-T7

   |————-T8

   |————-T9

   |———–DBDIH

   |———D10

   |———–DBLQH

   |———D11

   |———–DBLQH

   |———D2

   |———–DBDICT

   |————-T1

   |————-T2

   |————-T3

   |————-T4

   |————-T5

   |————-T6

   |————-T7

   |————-T8

   |————-T9

   |———–DBDIH

   |———D8

   |———–DBLQH

   |———D9

   |———–DBLQH

   |———LCP

   |———–0

 

 

  本文将研讨

1.1.1. 预备安装包

自打MySQL官网下载以下安装包:

mysql-cluster_7.5.7-1ubuntu14.04_amd64.deb-bundle.tar

 

解压后收获以下deb安装包文件:

mysql-client_7.5.7-1ubuntu14.04_amd64.deb
                              mysql-cluster-community-nodejs_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-auto-installer_7.5.7-1ubuntu14.04_amd64.deb
    mysql-cluster-community-server_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-client_7.5.7-1ubuntu14.04_amd64.deb
            mysql-cluster-community-source_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-data-node_7.5.7-1ubuntu14.04_amd64.deb
         mysql-cluster-community-test_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-java_7.5.7-1ubuntu14.04_amd64.deb
              mysql-common_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-management-server_7.5.7-1ubuntu14.04_amd64.deb
 mysql-server_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-memcached_7.5.7-1ubuntu14.04_amd64.deb
         mysql-testsuite_7.5.7-1ubuntu14.04_amd64.deb

 

 

为成功安装,还亟需准备以下依赖软件包:

libaio1_0.3.109-4_amd64.deb
                                            libmecab2_0.996-1.1_amd64.deb

 

 

  本文使用 Java 来叙述对 Mongodb 的相干操作,数据库版本是
3.2.8,驱动版为 3.2.2。

1.1.2. 设置相关软件

执行deb -i  xxxxx.deb命令,安装前介绍的依次软件包。安装的次第如下:

 

(1)安装倚重包。

libaio1_0.3.109-4_amd64.deb
                                            libmecab2_0.996-1.1_amd64.deb

 

(2)安装python相关包。

MySQL Cluster的配备程序行使Python编写,需要python以及相关库的支撑。  

装前确保系统及曾经装了python2.6仍旧重强版本。

 sudo apt-get install python-pip

 sudo pip install paramiko

 sudo pip install pycrypto

 

(3)安装集群相关包。

 

于装置这么些软件包从前,请保管先用MySQL单机版完全由网受去除掉。

 

mysql-cluster-community-auto-installer_7.5.7-1ubuntu14.04_amd64.deb
    

mysql-common_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-client_7.5.7-1ubuntu14.04_amd64.deb
            

mysql-client_7.5.7-1ubuntu14.04_amd64.deb
                              

mysql-cluster-community-nodejs_7.5.7-1ubuntu14.04_amd64.deb

mysql-cluster-community-data-node_7.5.7-1ubuntu14.04_amd64.deb
         mysql-cluster-community-java_7.5.7-1ubuntu14.04_amd64.deb
              mysql-cluster-community-management-server_7.5.7-1ubuntu14.04_amd64.deb
 mysql-cluster-community-server_7.5.7-1ubuntu14.04_amd64.deb

 

上述软件全部安装成功之后,软件程序的装置就完了了。

 

1.1 连接单机和集群

  站于代码的角度,单机和集群的别就是是端口号不同,假设服务器地址和端口号为:192.168.0.8跟27017,则连年代码如下:

String user = "admin";
String pwd = "111111";
String authDb = "admin";
String host = "192.168.0.8";
int port = 27017;
// 1. 直接连接
MongoCredential credential = MongoCredential.createCredential(user, authDb, pwd.toCharArray());
MongoClient mongoClient = new MongoClient(new ServerAddress(host , port), Arrays.asList(credential));

// 2. 使用连接字符串连接
// mongodb://user:pwd@host:port/?authSource=db
String conString = "mongodb://{0}:{1}@{2}:{3}/?authSource={4}";
MongoClientURI uri = new MongoClientURI(MessageFormat.format(conString, user, pwd, host, port+"", authDb)); //注意port为字符串
MongoClient mongoClient = new MongoClient(uri);

发表评论

电子邮件地址不会被公开。 必填项已用*标注