vlambda博客
学习文章列表

GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试


GBase 8a的docker版安装、迁移和js连接测试


文 | 吴毅




GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试

docker版GBase 8a的安装


查询安装的版本

docker search gbase8a


docker版本的安装(特别注意,如果网络不好,可能会下载不了镜像,要多测试几次)

docker pull shihd/gbase8a:1.0


启动GBase 8a

docker run -it --name gbase8a --hostname=gbase8a --privileged=true -p5258:5258 shihd/gbase8a:1.0


进入docker系统

docker exec -it gbase8a /bin/bash


进入GBase 8a

gbase -uroot –p
GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试


GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试

把mysql数据迁移到GBase 8a


下载windows版本GBaseMigrationToolkit解压后,进入migration的目录点击Migration.exe,特别要注意的是绝对路径的名称不能是中文,否则无法打开。


GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试


迁移步骤


新建任务——填写任务名称:mysql(任意取名),点击下一步——选择迁移的源数据库(mysql)和目标数据(GBase 8a),点击下一步——填写源数据库名称(mysql),主机名,端口,用户名,密码和数据库名(test1),点击下一步——填写目标数据库名称(GBase 8a),主机名,端口,用户名,密码和数据库名(shares)。这里的数据库名不能使用默认的GBase 8a,否则无法迁移成功,必须要重新建立数据库shares,这样就能把test1的表迁移到shares的库里。可以选择单表,多表和全表迁移。迁移成功如图所示:


GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试
GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试


GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试

安装node.js和配置其环境


在windows7下 载 https://nodejs.org/dist/latest-v12.x/node-v12.22.4-x64.msi 并 安装完成后,查看版本

node -vnpm -v


创建文件夹


D:\nodejs\node_cache
D:\Program Files\nodejs\node_global
在命令行执行:

npm config set prefix "D:\nodejs\node_global"npm config set cache "D:\nodejs\node_cache"


设置环境变量


在我的电脑——高级系统设置——高级——环境变量——系统变量——新建——变量名:NODE_PATH 变量值:D:\nodejs\node_global\node_modules

特别要注意:要在配置用户环境变量里修改Path下面的路径,否则无法使用cnpm这个命令。在用户变量的Path,把C:\Users\wy1\AppData\Roaming\npm改为D:\nodejs\node_global


GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试
GBase有奖征文优选文章4 | GBase 8a的docker版安装、迁移和js连接测试


cnpm安装

npm install -g cnpm --registry=https://registry.npm.taobao.org


cnpm没有关于GBase的资源安装包,根据GBase 8a论坛上有人讨论过node.js连接GBase 8a的问题:http://www.gbase8a.com/forum.php?mod=viewthread&tid=3391。尝试使用mysql的方式来实现。

cnpm install mysql


创建 一个gbase.js,代码如下:

var gb = require('mysql');
// 数据库配置var config = {  user: 'root',  database: 'shares',  password: 'xxxxxxx',  host: 'xxxxxxxxxxxxxxxxx',  port: 5258,    // 扩展属性  //max:20, // 连接池最大连接数  //idleTimeoutMillis:30000, // 连接最大空闲时间 3s}
// 创建连接池var connection = gb.createConnection(config);
connection.connect();
var sql = "select * from shares_basic limit 5";
connection.query(sql, (err, results) => {  // 查询数据失败  if (err) return console.log(err.message)  // 查询数据成功  // 注意:如果执行的是 select 查询语句,则执行的结果是数组  console.log(results)});
connection.end();


在02目录下执行:

Node gbase.js

执行后的效果图如下:



通过这次mysql迁移到GBase 8a和node.js连接GBase 8a的操作,对GBase 8a有了进一步了解。在node.js的连接上,mysql和GBase 8a是有兼容性,但不是百分百兼容,差异的问题等遇到再解决。同时特别注意,在迁移过程中,不能使用默认的GBase 8a数据库,必须要创建新数据库才能迁移成功。




THE END




往期文章 

新闻资讯

生态合作

培训活动

技术干货