在官方Docker环境中快速体验YMatrix数据库
Docker 部署
YMatrix 提供 Docker 运行环境,在 hub.docker.com 中的地址为https://hub.docker.com/u/matrixdb。
1. 从镜像仓库中拉取最新镜像
进入到主页选择 matrixdb/centos7_demo:
页面右边提供了拉取镜像的命令:
在终端中执行拉取命令:
1 | docker pull matrixdb/centos7_demo |
执行成功后,可以看到本地仓库已经包含了最新版本的镜像:
1 2 3 | $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE matrixdb/centos7_demo latest 65d20762cc25 19 hours ago 1.65GB |
2. 创建容器
下面,基于获取的镜像创建容器:
1 | docker run -itd --name matrixdb -h matrixdb -p 5432:5432 -p 8240:8240 -p 8086:8086 matrixdb/centos7_demo |
注意!
-p 参数为主机与容器做端口映射,目的是为了从宿主机连接容器内的数据库。格式为-p 宿主机端口:容器端口
数据库连接使用端口5432
图形化管理界面使用端口8240
mxgate 使用端口8086
查看运行的容器:
1 2 3 | $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 87344882d280 matrixdb/centos7_demo "/home/mxadmin/entry…" 25 minutes ago Up 25 minutes 22/tcp, 7000/tcp mxdemo |
查看日志:
1 | docker logs -f matrixdb |
如果最后出现,则表示成功。
3. 登入容器并使用
3.1 登入容器
使用 docker exec 命令登入到运行的容器中:
1 | docker exec -it mxdemo /bin/bash |
3.2 切换为 mxadmin 用户
1 | su - mxadmin |
接下来,就可以像真实环境一样正常使用 YMatrix 了:
1 2 3 4 5 | [mxadmin@87344882d280 ~]$ psql psql (12) Type "help" for help. mxadmin=# |
4. 使用 DBeaver 连接数据库
在宿主机用 DBeaver 连接容器内数据库,根据下面的设置,填写连接信息后,点 Finish
即可。密码默认为:changeme
DBeaver 下载地址:https://dbeaver.io/download/
5. 使用终端连接数据库
如果不想进入 Docker
容器内,可以在终端执行 psql
来连接 YMatrix,前提是需要安装 psql
命令。如果已经安装 psql
命令,打开终端,输入:
1 | psql -h 127.0.0.1 -p 5432 -d mxadmin -U mxadmin |
执行完上述命令后,会要求输入密码进行验证,默认密码:changeme
6. 使用 YMatrix 图形化管理界面
使用 Chrome 浏览器访问 http://127.0.0.1:8240/,通过图形化界面管理数据库,创建和管理 mxgate 数据导入任务。 默认管理员密码为 changeme
如果想要重新启动 YMatrix 图形化管理界面, 需要进入 Docker 容器中,在 root 用户下执行:
1 | /etc/init.d/matrixdb-supervisor restart |
图形化管理界面相关功能的更多介绍,请参考文档:
7. 更多安全配置
为方便试用,安装完成后系统默认允许任意IP通过用户名和密码访问数据库,管理员密码为 changeme
。
为了确保您的数据安全,请在使用时务必根据需要修改客户端连接认证,密码等安全设置。
7.1 修改客户端连接认证
修改 pg_hba.conf 配置文件,可以通过对客户端连接进行限制。 具体规则请参考文档:客户端认证
修改完成后,你需要根据数据库软件版本选择以下其中一种命令,重新加载配置文件,使其生效。
1 | mxstop -u |
7.2 修改密码
1 2 3 4 5 | [mxadmin@87344882d280 ~]$ psql -d postgres psql (12) Type "help" for help. postgres=# alter role mxadmin with password 'mxadmin'; ALTER ROLE |