I'm trying to create a docker container with MariaDB 11.1 and Columnstore. Not as a standalone columnstore server, but as a plugin that will allow me to create tables with Columnstore engine.
First, I create a custom MariaDB imagine with the following Dockerfile:
FROM mariadb:11.1
RUN apt-get update && apt-get install -y libjemalloc2 mariadb-backup libmariadb3 mariadb-plugin-columnstore
ENV MYSQL_ROOT_PASSWORD=!!pass!!
EXPOSE 3306
CMD ["mysqld"]
Then, I build it, and use it in the following docker-compose file:
version: '3.9'
services:
mariadb:
image: custom-mariadb-columnstore:11.1
ports:
- 33060:3306
volumes:
- './docker/db/data:/var/lib/mysql'
- './docker/db/my.cnf:/etc/mysql/conf.d/my.cnf'
environment:
- MYSQL_ROOT_PASSWORD=!!pass!!
- MYSQL_PASSWORD=!!pass!!
- MYSQL_USER=!!user!!
- MYSQL_DATABASE=!!db!!
command: ["--plugin-load=columnstore=ha_columnstore.so"]
I then run "docker-compose up". Everything works so far.
I connect to the database, and run
show engines
and get
Columnstore is there.
But then, when I'm trying to actually create a table using Columnstore as the engine:
CREATE TABLE test.Test (
test varchar(100) NULL
)
ENGINE=Columnstore
DEFAULT CHARSET=utf8mb3
COLLATE=utf8mb3_general_ci;
I get the following error:
Internal error: Cannot execute the statement. DBRM is read only!
Meanwhile, when looking at the console output, I get this error:
mariadb_1 | DBRM: SessionManager::sysCatVerID(): network error
mariadb_1 | DBRM::send_recv caught: InetStreamSocket::connect: connect() error: Connection refused to: InetStreamSocket: sd: 68 inet: 127.0.0.1 port: 8616
mariadb_1 | DBRM::send_recv caught: InetStreamSocket::connect: connect() error: Connection refused to: InetStreamSocket: sd: 68 inet: 127.0.0.1 port: 8616
Tried with Mariadb 11.1 and 10.6. Same result exactly.
I don't get it! What could it possibly be? I tried looking up both of these errors and couldn't find anything useful.
Thanks.
Tried both Maria 11.1 and 10.6
Also, this only happens with the Columnstore engine. Everything else works fine.