Docker使用MariaDB (mysql)

date
May 12, 2022
slug
newservice-mariadb-mysql
status
Published
summary
新服务
tags
service
type
Post
URL

Summary

  • docker使用mysql/mariadb 的各种技巧

步骤

Docker一行开启

DOCKER_MYSQL_ROOT_PASS=a8D72ypd
DOCKER_MYSQL_USER_PASS=St4Ha9U6

mkdir -p /data/shared_mariadb && cd /data/shared_mariadb
# persistant mysql db
docker run -d \
  --name=shared_mariadb \
  -e PUID=1000 \
  -e PGID=1000 \
  -e MYSQL_ROOT_PASSWORD=${DOCKER_MYSQL_ROOT_PASS} \
  -e TZ=Asia/Hong_Kong \
  -e MYSQL_DATABASE=master_db `#optional` \
  -e MYSQL_USER=master_user `#optional` \
  -e MYSQL_PASSWORD=${DOCKER_MYSQL_USER_PASS} `#optional` \
  -p 18888:3306 \
  -v $(pwd)/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/mariadb:latest

docker logs shared_mariadb
# 获得分配的docker ip
docker inspect shared_mariadb | grep "IPAddress"

## !!! 别人使用这个maria db docker的时候一定要
docker run -d ... --link shared_mariadb:db ...

# 或者建立

!!! 别人使用这个maria db docker的时候一定要 docker run -d ... --link shared_mariadb:db ...

  • 填 docker_ip:3306 (而非18888) 或者 db:3306 (db就是hostname)
  • 填 vps_host_ip:18888

或者创建一个容器网络,方便需要互通的容器加入

docker network ls
docker network create -d bridge network_shared_mariadb

# 将 
# --link shared_mariadb:db \
# 替换成
# --network network_shared_mariadb \
# shared_mariadb 的执行命令也要带上这行
# 即可用 docker_ip 来访问了

进入docker,进行mysql创建db等操作

docker exec -it shared_mariadb /bin/bash   ##进入数据库容器
mysql -uroot -p

# docker exec -it shared_mariadb mysql -uroot -p

create database new_db_name character set utf8mb4 collate utf8mb4_bin;
CREATE USER 'new_username'@'%' IDENTIFIED BY 'some_password';
grant all on new_db_name.* to 'new_username'@'%' with grant option;
flush privileges;

© Ying Bun 2021 - 2022