今日は入手から起動するところまで。
アカウント登録
「SingleStore is The Database of Now™ Powering Modern Applications and Analytical Systems」 にアクセスし、右上の Start Free →
ボタン押下。
登録フォームに情報を入力し、ページに従ってアカウント登録を行う。
ライセンスキー取得
アカウント登録完了後、ログインし、ポータルの左メニューから Software Licenses
を選択すると、ライセンスキーが確認できるのでメモ。
MemSQL 動作確認
Docker コンテナ起動
# 「ライセンスキー取得」でメモした文字列を設定
$MEM_SQL_LICENSE_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# MemSQL 管理コンソールに root ログインする際に使用するパスワードを設定
$MEM_SQL_ROOT_PASSWORD="yyyyyyy"
# MemSQL 用の volume 作成
docker volume create memsql
# コンテナ初期化
docker run -i --init `
--name memsql-ciab1 `
-e LICENSE_KEY=$MEM_SQL_LICENSE_KEY `
-e ROOT_PASSWORD=$MEM_SQL_ROOT_PASSWORD `
-e START_AFTER_INIT=Y `
-v "memsql:/var/lib/memsql" `
-p 3306:3306 -p 8080:8080 `
memsql/cluster-in-a-box
MemSQL へ接続
http://localhost:8080
へアクセスすると、管理コンソールへ接続できる。
また、 docker exec
でコンテナ内のクライアントを使用することもできる。
後片付け
Ctrl-C
でコンテナから抜けたうえで、以下コマンドを実行。
# コンテナ停止
docker stop memsql-ciab1
# コンテナ削除
docker rm memsql-ciab1
# volume 削除
docker volume rm memsql
コンテナ起動時に初期データを投入するのを試す
/init.sql
にファイルを入れると、初期化時に実行してくれるようなので、そちらも試してみる。
以下 SQL ファイルを作成し、 init.sql
という名前で保存。
DROP SCHEMA IF EXISTS demo;
CREATE SCHEMA demo;
USE demo;
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id INT(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(40)
);
DROP TABLE IF EXISTS item;
CREATE TABLE item
(
id INT(10),
name VARCHAR(40),
count INT(10),
description VARCHAR(40)
);
INSERT INTO item (id, name, count, description) VALUES (1, "item1", 1, "description1");
INSERT INTO item (id, name, count, description) VALUES (1, "item2", 2, "description2");
INSERT INTO item (id, name, count, description) VALUES (1, "item3", 3, "description3");
INSERT INTO item (id, name, count, description) VALUES (2, "item1", 1, "description1");
INSERT INTO item (id, name, count, description) VALUES (2, "item2", 2, "description2");
INSERT INTO item (id, name, count, description) VALUES (2, "item3", 3, "description3");
INSERT INTO user (id, name) VALUES (1, "user1");
INSERT INTO user (id, name) VALUES (2, "user2");
INSERT INTO user (id, name) VALUES (3, "user3");
INSERT INTO user (id, name) VALUES (4, "user4");
INSERT INTO user (id, name) VALUES (5, "user5");
コンテナ起動時に、 -v
で /init.sql
へマウントする。
# MemSQL 用の volume 作成
docker volume create memsql
# コンテナ初期化
docker run -i --init `
--name memsql-ciab1 `
-e LICENSE_KEY=$MEM_SQL_LICENSE_KEY `
-e ROOT_PASSWORD=$MEM_SQL_ROOT_PASSWORD `
-e START_AFTER_INIT=Y `
-v "$(pwd)/init.sql:/init.sql" `
-v "memsql:/var/lib/memsql" `
-p 3306:3306 -p 8080:8080 `
memsql/cluster-in-a-box
http://localhost:8080
に接続。はい、いけてるっぽい。
後片付け
Ctrl-C
でコンテナから抜けたうえで、以下コマンドを実行。
# コンテナ停止
docker stop memsql-ciab1
# コンテナ削除
docker rm memsql-ciab1
# volume 削除
docker volume rm memsql
以上。
参考資料
- SingleStore is The Database of Now™ Powering Modern Applications and Analytical Systems
- SingleStore Documentation
- Introduction
- What are license units and how do they apply to my cluster?
- Spin Up a SingleStore Cluster on Docker Desktop in 10 Minutes
- memsql/deployment-docker: This repository contains our official deployment Docker images for various products.