GBase 8a的安装,测试环境:操作系统版本:CentOS7.6 x86_64,硬件配置:2C4G 1台,
服务器名称:kafka1.wuyi.com, IP地址: 172.16.32.5
1. docker版GBase 8a的安装
1.1 查询安装的版本
docker search gbase8a
1.2 docker版本的安装(特别注意,如果网络不好,可能会下载不了镜像,要多测试几次)
docker pull shihd/gbase8a:1.0
1.3 启动GBase 8a
docker run -it --name gbase8a --hostname=gbase8a --privileged=true -p5258:5258 shihd/gbase8a:1.0
1.4 进入docker系统
docker exec -it gbase8a /bin/bash
1.5 进入GBase 8a
gbase -uroot –p
2. 把mysql数据迁移到GBase 8a
2.1 下载windows版本GBaseMigrationToolkit解压后,进入migration的目录点击Migration.exe,特别要注意的是绝对路径的名称不能是中文,否则无法打开。
2.2 迁移步骤
新建任务——填写任务名称:mysql(任意取名),点击下一步——选择迁移的源数据库(mysql)和目标数据(GBase 8a),点击下一步——填写源数据库名称(mysql),主机名,端口,用户名,密码和数据库名(test1),点击下一步——填写目标数据库名称(GBase 8a),主机名,端口,用户名,密码和数据库名(shares)。这里的数据库名不能使用默认的GBase 8a,否则无法迁移成功,必须要重新建立数据库shares,这样就能把test1的表迁移到shares的库里。可以选择单表,多表和全表迁移。迁移成功如图所示:
3. 安装node.js和配置其环境
3.1 在windows7下 载 https://nodejs.org/dist/latest-v12.x/node-v12.22.4-x64.msi 并 安装完成后,查看版本
node -v npm -v
3.2 创建文件夹:
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"
3.3 设置环境变量
在我的电脑————高级系统设置————高级————环境变量————系统变量————新建————变量名:NODE_PATH 变量值:D:\nodejs\node_global\node_modules
特别要注意:要在配置用户环境变量里修改Path下面的路径,否则无法使用cnpm这个命令。在用户变量的Path,把C:\Users\wy1\AppData\Roaming\npm改为D:\nodejs\node_global
3.4 cnpm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
3.5 cnpm没有关于GBase的资源安装包,根据GBase 8a论坛上有人讨论过node.js连接GBase 8a的问题:http://www.gbase8a.com/forum.php?mod=viewthread&tid=3391。尝试使用mysql的方式来实现。
cnpm install mysql
3.6 创建 一个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();
3.7在02目录下执行:
Node gbase.js
执行后的效果图如下:
通过这次mysql迁移到GBase 8a和node.js连接GBase 8a的操作,对GBase 8a有了进一步了解。在node.js的连接上,mysql和GBase 8a是有兼容性,但不是百分百兼容,差异的问题等遇到再解决。同时特别注意,在迁移过程中,不能使用默认的GBase 8a数据库,必须要创建新数据库才能迁移成功。