首页 > 解决方案 > 通过 docker 运行 memSQL 时更改 memSQL 默认聚合器端口

问题描述

我正在尝试通过 docker 容器使用 MemSQL。
下面是我的 memsql docker 的 Docker-compose.yml 条目

memsql:
image: memsql/quickstart
volumes:
  - "./jenkins/jenkins_memsql_schema.sql:/schema.sql"
ports:
  - "3307:3306"
  - "9000:9000"
hostname: memsql
container_name: memsql

memsql 运行的默认端口是 3306。我想更改这个默认端口。
当我举起这个容器并尝试从容器内更改端口时。
我使用以下命令:

memsql-ops memsql-update-config --key=port --value=3307

我收到以下错误:

You cannot change the port variable for an existing MemSQL node.

所以:

  1. 似乎一旦 memSQL 运行,您就无法更改端口,那么您之前如何更改它?
  2. 如何通过 docker-compose 设置进行设置?

标签: dockerdocker-composeportsinglestore

解决方案


在 Docker 中运行 MemSQL 的上下文中,最简单的方法是让 MemSQL 在 docker 容器内的端口 3306 上运行,但与该端口有不同的主机端口映射。

在非 Docker 安装中,您可以选择在安装期间安装 MemSQL 的端口(--port 选项到https://docs.memsql.com/memsql-tools-reference/latest/create-node/)。也可以通过删除并使用所需端口重新添加节点来更改节点的端口 - memsql-update-config 不能用于此。


推荐阅读