§ 容器化安装
本节介绍如何用 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
§ 安装步骤
- 启动Docker服务
$ systemctl start docker
- 搜索、拉取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:03969daaaaaeb0f51dde0c9e92ef327302607cdde3afbe5c2b071098000c52c1
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
- 创建一个新容器,容器中会安装并启动GreatSQL数据库
$ docker run -d --name greatsql --hostname=greatsql -e MYSQL_ALLOW_EMPTY_PASSWORD=1 greatsql/greatsql
4f351e22cea990b177589970ac5374f4b3366d2c0f69e923475f82c51da4b934
2
3
容器的命名和容器内主机名均为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
看到容器状态是Up的,表示已正常启动了。
- 进入容器
$ docker exec -it greatsql bash
[root@greatsql /]# cd /data/GreatSQL/
[root@greatsql GreatSQL]# ls
'#ib_16384_0.dblwr' binlog.000001 ca-key.pem error.log ibdata1 mysql.ibd performance_schema server-key.pem undo_002
'#ib_16384_1.dblwr' binlog.000002 ca.pem ib_buffer_pool ibtmp1 mysql.pid private_key.pem slow.log
'#innodb_temp' binlog.000003 client-cert.pem ib_logfile0 innodb_status.1 mysql.sock public_key.pem sys
auto.cnf binlog.index client-key.pem ib_logfile1 mysql mysql.sock.lock server-cert.pem undo_001
2
3
4
5
6
7
可以看到,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.
(Wed Jul 6 14:42:39 2022)[root@GreatSQL][(none)]>\s
--------------
...
Server version: 8.0.32-25 GreatSQL, Release 25, Revision db07cc5cb73
...
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参考模板 →