Docker 部署 MariaDB 数据库 与 Adminer 数据库管理工具

文章目录

MariaDB

MariaDB是一个流行的开源关系型数据库管理系统(RDBMS),它是MySQL的一个分支和替代品。

bash 复制代码
docker pull mariadb
  • 创建缩主机目录
bash 复制代码
mkdir mariadb && cd mariadb
mkdir data conf logs
  • 部署服务并拷贝 mariadb.cnf
bash 复制代码
docker run -d --name mariadb -e MARIADB_ROOT_PASSWORD="4NuMDwIzp05BdKp7Bdmf" mariadb
# 将 mariadb.cnf 配置复制出来
docker cp mariadb:/etc/mysql/mariadb.cnf ./

mariadb.cnf

bash 复制代码
[client-server]

port = 3306
socket = /run/mysqld/mysqld.sock

# 不再自动创建登录权限
sql_mode=NO_AUTO_CREATE_USER

# 生成日志
general_log=1
general_log_file=/var/log/mysql/mysql.log

# 无论是否超时,未被索引的记录也会记录下来
log_queries_not_using_indexes=1
# 全局开启慢查询功能
slow_query_log=1
# 慢查询阈值(秒),SQL 执行超过这个阈值将被记录在日志中
long_query_time=1
# 慢查询仅记录扫描行数大于此参数的 SQL
min_examined_row_limit=500
# 指定慢查询日志存储文件的地址和文件名
slow_query_log_file=/var/log/mysql/slow.log

# 取消 ONLY_FULL_GROUP_BY
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
# 开启定时事件
event_scheduler=1
# 表名大小写不敏感
lower_case_table_names=1
# 设置字符集
character_set_server=utf8mb4
collation_server=utf8mb4_bin

# 默认使用的存储引擎
default_storage_engine=InnoDB

开启 binlog

bash 复制代码
[client-server]
# binlog功能
log_bin=/var/lib/mysql/mysql-bin
# binlog 文件格式
binlog_format=ROW
# 表无论有没有主键约束或者唯一约束binlog都会记录所有前后镜像
binlog_row_image=FULL
# binlog 文件保留时间7天(默认0天)
expire_logs_days=7
# binlog 单个文件的最大值大小(默认1G)
max_binlog_size=512m
# 开启 binlog 后需要创建 function 或 procedure 时要开启
log_bin_trust_function_creators=1
# 服务id,以区分主库和备库
server-id=1

Adminer

Adminer是一个轻量级的开源数据库管理工具,设计用于管理MySQL、MariaDB、SQLite、PostgreSQL等多种关系型数据库。

bash 复制代码
docker pull adminer

docker-compose.yml

  • 创建缩主机目录
bash 复制代码
mkdir mariadb && cd mariadb
mkdir data conf logs
yml 复制代码
services:
  mariadb:
    image: mariadb
    container_name: mariadb
    restart: always
    ports:
      - 3306:3306
    environment:
      MARIADB_ROOT_PASSWORD: "4NuMDwIzp05BdKp7Bdmf"
      MARIADB_DATABASE: "demo"
      MARIADB_USER: "test"
      MARIADB_PASSWORD: "mariadb123456"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./mariadb/data:/var/lib/mysql
      - ./mariadb/conf:/etc/mysql/conf.d
      - ./mariadb/logs:/var/log/mysql
  adminer:
    image: adminer
    container_name: adminer
    restart: always
    ports:
      - 8080:8080
    depends_on:
      - mariadb

Adminer 连接 MariaDB

  • 连接 MariaDB
  • 登录成功

注意: 服务器不要填 127.0.0.1,要填缩主机IP地址,否则连接不上。

相关推荐
ademen1 小时前
spring第9课,spring对DAO的支持
java·数据库·spring
Java小白程序员1 小时前
SQL 语句进阶实战:从基础查询到性能优化全指南
数据库·sql·性能优化
进击的阿尔法猿1 小时前
docker
运维·docker·容器
君不见,青丝成雪2 小时前
Hadoop技术栈(四)HIVE常用函数汇总
大数据·数据库·数据仓库·hive·sql
不羁。。7 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1118 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance8 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai8 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白9 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务9 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词