This commit is contained in:
Benjamin Toby
2025-02-16 17:12:40 +01:00
parent e9761cc971
commit e95f4d1087
628 changed files with 3091 additions and 1073 deletions
+1
View File
@@ -0,0 +1 @@
mariadb -u root -p$MARIADB_ROOT_PASSWORD
+2
View File
@@ -0,0 +1,2 @@
SHOW GLOBAL STATUS LIKE 'wsrep_%';
SHOW GLOBAL STATUS LIKE 'wsrep_cluster_%';
+11
View File
@@ -0,0 +1,11 @@
FROM mariadb:11-jammy
RUN apt update
RUN apt install -y curl wget zip unzip xz-utils galera-4
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
COPY .bash_history /root/.bash_history
CMD [ "mariadbd","--wsrep-new-cluster" ]
@@ -0,0 +1,16 @@
[mysqld]
# Mandatory settings
wsrep_on = ON
wsrep_cluster_name = "MariaDB Galera Cluster"
wsrep_cluster_address = gcomm://mariadb-node1,mariadb-node2,mariadb-node3
binlog_format = row
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2
# Allow server to accept connections on all interfaces.
bind-address = 0.0.0.0
# Optional settings
#wsrep_slave_threads = 1
#innodb_flush_log_at_trx_commit = 0
@@ -0,0 +1,8 @@
[mariadb]
wsrep_on = ON
wsrep_cluster_address = gcomm://
wsrep_provider = /usr/lib/libgalera_smm.so
binlog_format = ROW
default_storage_engine = InnoDB
@@ -0,0 +1,8 @@
[mariadb]
wsrep_on = ON
wsrep_cluster_address = gcomm://mariadb-node1
wsrep_provider = /usr/lib/libgalera_smm.so
binlog_format = ROW
default_storage_engine = InnoDB
@@ -0,0 +1,8 @@
[mariadb]
wsrep_on = ON
wsrep_cluster_address = gcomm://mariadb-node1
wsrep_provider = /usr/lib/libgalera_smm.so
binlog_format = ROW
default_storage_engine = InnoDB
+12
View File
@@ -0,0 +1,12 @@
[mysqld]
max_connections = 200
skip-networking=0
skip-bind-address
ssl-ca = /ssl/ca-cert.pem
ssl-cert = /ssl/server-cert.pem
ssl-key = /ssl/server-key.pem
+9
View File
@@ -0,0 +1,9 @@
[mariadb]
wsrep_on = ON
wsrep_cluster_address = gcomm://mariadb-node1,mariadb-node2,mariadb-node3
wsrep_provider = /usr/lib/libgalera_smm.so
wsrep_provider_options ="socket.ssl_key=/ssl/server-key.pem;socket.ssl_cert=/ssl/server-cert.pem;socket.ssl_ca=/ssl/ca-cert.pem"
binlog_format = ROW
default_storage_engine = InnoDB
@@ -0,0 +1 @@
11.6.2-MariaDB
@@ -0,0 +1 @@
11.3.2-MariaDB
@@ -0,0 +1 @@
11.3.2-MariaDB
@@ -0,0 +1,54 @@
name: galera
services:
mariadb-node1:
build:
context: .
dockerfile: Dockerfile
networks:
galera:
container_name: mariadb-node1
environment:
- MARIADB_ROOT_PASSWORD=password
volumes:
- ./conf.d:/etc/mysql/conf.d
- ./ssl:/ssl
- ./db:/var/lib/mysql
mariadb-node2:
build:
context: .
dockerfile: Dockerfile
container_name: mariadb-node2
networks:
galera:
environment:
- MARIADB_ROOT_PASSWORD=password
- MARIADB_SLAVE=1
volumes:
- ./conf.d:/etc/mysql/conf.d
- ./ssl:/ssl
- ./db2:/var/lib/mysql
command: ["mariadbd"]
entrypoint: null
mariadb-node3:
build:
context: .
dockerfile: Dockerfile
container_name: mariadb-node3
networks:
galera:
environment:
- MARIADB_ROOT_PASSWORD=password
- MARIADB_SLAVE=1
volumes:
- ./conf.d:/etc/mysql/conf.d
- ./ssl:/ssl
- ./db3:/var/lib/mysql
command: ["mariadbd"]
entrypoint: null
networks:
galera:
driver: bridge
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
mariadbd --wsrep-new-cluster
@@ -0,0 +1,97 @@
version: '2'
services:
node1-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node1-mariadb
container_name: node1-mariadb
environment:
MYSQL_ROOT_PASSWORD: 'iamgroot'
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node1-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://
TZ : 'Asia/Seoul'
ports:
- 13306:3306/tcp
volumes:
- ./galeranode1/mariadb:/var/lib/mysql
- ./sqldir:/docker-entrypoint-initdb.d
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
--wsrep-new-cluster
stdin_open: true
tty: true
privileged: true
ulimits:
nofile:
soft: 600000
hard: 640000
node2-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node2-mariadb
container_name: node2-mariadb
links:
- node1-mariadb
environment:
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node2-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://node1-mariadb
TZ : 'Asia/Seoul'
ports:
- 23306:3306/tcp
volumes:
- ./galeranode2/mariadb:/var/lib/mysql
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
stdin_open: true
tty: true
privileged: true
depends_on:
- node1-mariadb
ulimits:
nofile:
soft: 600000
hard: 640000
node3-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node3-mariadb
container_name: node3-mariadb
links:
- node1-mariadb
environment:
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node3-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://node1-mariadb
TZ : 'Asia/Seoul'
ports:
- 33306:3306/tcp
volumes:
- ./galeranode3/mariadb:/var/lib/mysql
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
stdin_open: true
tty: true
privileged: true
depends_on:
- node1-mariadb
- node2-mariadb
@@ -0,0 +1,105 @@
version: '2'
services:
node1-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node1-mariadb
container_name: node1-mariadb
environment:
MYSQL_ROOT_PASSWORD: 'iamgroot'
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node1-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://
TZ : 'Asia/Seoul'
ports:
- 13306:3306/tcp
volumes:
- /data/someone/mariadb/galeranode1/mariadb:/var/lib/mysql
- /data/someone/mariadb/sqldir:/docker-entrypoint-initdb.d
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
--wsrep-new-cluster
stdin_open: true
tty: true
privileged: true
ulimits:
nofile:
soft: 600000
hard: 640000
labels:
io.rancher.scheduler.affinity:host_label: labelkey1=labelkvalue1
io.rancher.container.pull_image: always
node2-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node2-mariadb
container_name: node2-mariadb
links:
- node1-mariadb
environment:
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node2-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://node1-mariadb
TZ : 'Asia/Seoul'
ports:
- 23306:3306/tcp
volumes:
- /data/someone/galeranode2/mariadb:/var/lib/mysql
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
stdin_open: true
tty: true
privileged: true
depends_on:
- node1-mariadb
ulimits:
nofile:
soft: 600000
hard: 640000
labels:
io.rancher.scheduler.affinity:host_label: labelkey2=labelkvalue2
io.rancher.container.pull_image: always
node3-mariadb:
image: hauptmedia/mariadb:10.1
hostname: node3-mariadb
container_name: node3-mariadb
links:
- node1-mariadb
environment:
REPLICATION_PASSWORD: 'iamgroot'
GALERA: 'On'
NODE_NAME: node3-mariadb
CLUSTER_NAME: maria_cluster
CLUSTER_ADDRESS: gcomm://node1-mariadb
TZ : 'Asia/Seoul'
ports:
- 33306:3306/tcp
volumes:
- /data/someone/galeranode3/mariadb:/var/lib/mysql
command:
--wait_timeout=28800
--character-set-server=utf8
--collation-server=utf8_general_ci
--max-allowed-packet=512M
--net-buffer-length=5048576
stdin_open: true
tty: true
privileged: true
depends_on:
- node1-mariadb
- node2-mariadb
labels:
io.rancher.scheduler.affinity:host_label: labelkey3=labelkvalue3
io.rancher.container.pull_image: always
+18
View File
@@ -0,0 +1,18 @@
#!/bin/bash
checkvariablecnt=$#
if [ $checkvariablecnt == 4 ]; then
echo "Migrate to an existing [ $3 ]schema. "
mysql -u$1 -p$2 --database=$3 < $4
else
echo "Migrate file $3 "
mysql -u$1 -p$2 < $3
fi