Simple Mysql 8 Setup | Docker Swarm

Docker Apr 10, 2022

You need linux server, docker installed and swarm mode initiated.

Make a dir for mysql docker and other files:

mkdir mysql8 && cd mysql8
mkdir conf.d dbdata
nano conf.d/custom.ini
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default-authentication-plugin=mysql_native_password
character-set-server=utf8
collation-server=utf8_general_ci
nano docker-compose.yml
version: "3.7"

services:

  prod:
    image: mysql:8.0
    hostname: mysql-8
    command: '--default-authentication-plugin=mysql_native_password'
    networks:
      - durbok-net
    deploy:
      placement:
        constraints:
        - node.role == manager
      replicas: 1
      restart_policy:
        condition: on-failure
    volumes:
      - ./conf.d:/etc/mysql/conf.d
      - ./dbdata:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: urrootpass

networks:
  durbok-net:
    external: true

Deploy:

docker stack deploy -c docker-compose.yml mysql8

Wait a bit for docker to pull images. Then enter mysql container and create user and database for next project or app.

docker exec -it mysql8_prod.1.bg2t4nj6nb358wuupsino9nur bash
root@mysql-8:/# 
root@mysql-8:/# mysql -u root -p

Here are some mysql commands:

Mysql Basics
Mysql

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.