§ Docker 容器化安装
本节介绍如何用 Docker 方式安装 GreatSQL 数据库,假定本次安装是在 CentOS 8.x x86_64 环境中安装,并且是以 root 用户身份执行安装操作。
§ 环境准备
Docker 安装 GreatSQL 与宿主机的操作系统无关,只要能够运行 Docker 的操作系统均可支持,比如 Linux,Windows,macOS。在此之前,您需要先确认已经安装好 Docker 并能正常使用。
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
GreatSQL Docker 镜像仓库主页:https://hub.docker.com/repository/docker/greatsql/greatsql (opens new window)。
本文使用的 Docker 版本是 20.10.10
$ docker --version
...
Docker version 20.10.10, build b485636
2
3
4
§ 安装步骤
§ 1. 启动Docker服务
systemctl start docker
§ 2. 搜索、拉取GreatSQL镜像
$ docker search greatsql
...
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
greatsql/greatsql 4
$ docker pull greatsql
...
Using default tag: latest
latest: Pulling from greatsql/greatsql
a1d0c7532777: Already exists
0689c7a54f49: Pull complete
...
Digest: sha256:27255f94207ceec4302d4fb6f83c4b610e177f57e66347766befb69d1bae91e8
Status: Downloaded newer image for greatsql/greatsql:latest
docker.io/greatsql/greatsql:latest
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
若由于网络原因无法从 docker.io 拉取 GreatSQL 镜像的话,可以改成从阿里云拉取,方法如下:
docker pull registry.cn-beijing.aliyuncs.com/greatsql/greatsql
§ 3. 创建一个新容器
容器中会安装并启动GreatSQL数据库
$ docker run -d --name greatsql --hostname=greatsql -e MYSQL_ALLOW_EMPTY_PASSWORD=1 greatsql/greatsql
...
4f351e22cea990b177589970ac5374f4b3366d2c0f69e923475f82c51da4b934
2
3
4
容器的命名和容器内主机名均为greatsql。
确认容器状态:
$ docker ps -a | grep greatsql
...
4f351e22cea9 greatsql/greatsql "/docker-entrypoint.…" About a minute ago Up About a minute 3306/tcp, 33060-33061/tcp greatsql
...
2
3
4
5
看到容器状态是Up的,表示已正常启动了。
§ 4. 进入容器
$ docker exec -it greatsql bash
...
[root@greatsql /]# cd /data/GreatSQL/
[root@greatsql GreatSQL]# ls
auto.cnf binlog.index client-key.pem '#file_purge' ibdata1 '#innodb_temp' mysql.sock public_key.pem sys
binlog.000001 ca-key.pem duckdb.data '#ib_16384_0.dblwr' ibtmp1 mysql mysql.sock.lock server-cert.pem sys_audit
binlog.000002 ca.pem duckdb.data.wal '#ib_16384_1.dblwr' '#innodb_redo' mysql.ibd performance_schema server-key.pem undo_001
binlog.000003 client-cert.pem error.log ib_buffer_pool innodb_status.1 mysql.pid private_key.pem slow.log undo_002
2
3
4
5
6
7
8
9
可以看到,GreatSQL已经安装并初始化完毕。
在容器中登入GreatSQL数据库:
[root@greatsql GreatSQL]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
...
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
[root@GreatSQL][(none)]> status;
--------------
...
Server version: 8.0.32-26 GreatSQL, Release 26, Revision 444164cc78e
...
Threads: 2 Questions: 6 Slow queries: 0 Opens: 119 Flush tables: 3 Open tables: 36 Queries per second avg: 0.017
2
3
4
5
6
7
8
9
10
11
12
至此,在Docker中安装GreatSQL数据库完成。
如果想要在 Docker 容器中执行某个 SQL 脚本,需要先将该 SQL 脚本拷贝到容器中,再执行相应的 SQL 脚本,如下例所示:
# 先从宿主拷贝文件到容器中
docker cp /opt/greatsql-test.sql greatsql:/tmp/
2
其中
docker cp
表示发起一个 Docker 容器拷贝操作/tmp/greatsql-test.sql
是宿主环境下的文件greatsql
是容器名/tmp/
是容器中的目录
接下来,可以直接在宿主环境中调用执行容器中的 SQL 脚本
docker exec -it greatsql bash -c "mysql -f < /tmp/greatsql-test.sql"
上述方法有可能由于一些环境变量等原因无法执行,这时可以先进入容器再执行 SQL 脚本
# 先进入容器
docker exec -it greatsql bash
# 再在容器中执行一个 SQL 脚本
mysql -f < /tmp/greatsql-test.sql
2
3
4
5
这样就可以了。
扫码关注微信公众号
← 二进制包安装 my.cnf参考模板 →