Иногда требуется запустить СУБД MariaDB на сервере. Ниже описана инструкция, как запустить MariaDB через Docker.
Для начала создайте сеть, в которой будет находится СУБД Mysql со статическим IP адресом. Сеть нужно создать, т.к. стандартная сеть docker не дает возможности установить статический IP адрес у контейнера.
_x000D_docker network create -d bridge --subnet=172.20.0.0/16 dockernet -o "com.docker.network.bridge.name"="dockernet" Создание хранилища для базы данных.
_x000D_docker volume create mariadb_data Запуск контейнера Mysql
_x000D_docker run -d -e MYSQL_ROOT_PASSWORD=mysqlrootpassword --name mariadb --log-driver=journald --restart=unless-stopped -v mariadb_data:/var/lib/mysql --ip=172.20.0.5 --network="dockernet" mariadb:10.4.8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --sql-mode="" --ft_min_word_len=1 --bind-address=172.20.0.5 --wait_timeout=600 --max_allowed_packet=1G --innodb_buffer_pool_size=100M --net_read_timeout=3600 --net_write_timeout=3600 Параметры —restart:
unless-stopped — будет останавливаться при перезапуске системы
always — будет автоматически запускаться при старте системы
Mysql будет запущен на 172.20.0.5:3306
Пароль mysqlrootpassword поменяйте на другой
или создайте скрипт
Создайте файл /root/mysql.restart.sh и выполните его
_x000D_#!/bin/bash_x000D__x000D_docker network create -d bridge --subnet=172.20.0.0/16 dockernet -o "com.docker.network.bridge.name"="dockernet"_x000D__x000D_sleep 2_x000D__x000D_docker stop mariadb_x000D__x000D_sleep 2_x000D__x000D_docker rm mariadb_x000D__x000D_sleep 2_x000D__x000D_docker run -d -e MYSQL_ROOT_PASSWORD=HvJTPTgxwJ6i2n6R --name mariadb _x000D_ --log-driver=journald --restart=unless-stopped -v mariadb_data:/var/lib/mysql _x000D_ --ip=172.20.0.5 --network="dockernet" mariadb:10.4.8 _x000D_ --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci _x000D_ --sql-mode="" --ft_min_word_len=1 --bind-address=172.20.0.5 --wait_timeout=600 _x000D_ --max_allowed_packet=1G --innodb_buffer_pool_size=100M --net_read_timeout=3600 --net_write_timeout=3600 Настройте пользователя mysql для удаленного подключения
_x000D_docker exec -it mariadb mysql Выполните команды:
_x000D_SELECT host, user, password FROM mysql.user;_x000D_GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysqlrootpassword';_x000D_FLUSH PRIVILEGES;_x000D_quit Перезапустите контейнер
_x000D_docker stop mariadb_x000D_docker start mariadb