当前位置: 首页 > news >正文

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

文章目录

  • MariaDB
    • mariadb.cnf
    • 开启 binlog
  • Adminer
  • docker-compose.yml
  • Adminer 连接 MariaDB

MariaDB

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

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

mariadb.cnf

[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

[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等多种关系型数据库。

  • 官网:https://www.adminer.org/
  • 插件:https://www.adminer.org/en/plugins/
  • 镜像:https://hub.docker.com/_/adminer
docker pull adminer

docker-compose.yml

  • 创建缩主机目录
mkdir mariadb && cd mariadb
mkdir data conf logs
services:mariadb:image: mariadbcontainer_name: mariadbrestart: alwaysports:- 3306:3306environment: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/mysqladminer:image: adminercontainer_name: adminerrestart: alwaysports:- 8080:8080depends_on:- mariadb

Adminer 连接 MariaDB

  • http://localhost:8080/

  • 支持的数据库

在这里插入图片描述

  • 连接 MariaDB
    在这里插入图片描述
  • 登录成功
    在这里插入图片描述

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

http://www.lryc.cn/news/386460.html

相关文章:

  • qt 可以在一个函数中读一个文件,然后再将内容写入另一个文件中
  • Dijkstra算法C代码
  • P1064 [NOIP2006 提高组] 金明的预算方案
  • 大型企业组网如何规划网络
  • java:aocache的单实例缓存(二)
  • ElasticSearch安装部署
  • 数据赋能(132)——开发:数据转换——影响因素、直接作用、主要特征
  • TMGM:ASIC撤销禁令,TMGM强化合规、重启差价合约服务
  • 基于SpringBoot网吧管理系统设计和实现(源码+LW+调试文档+讲解等)
  • 实测2024年最佳的三款Socks5代理IP网站
  • Pythonnet能导入clr,但无法引入System模块?
  • 媒体宣发套餐的概述及推广方法-华媒舍
  • Windows和Linux C++判断磁盘空间是否充足
  • 数据访问层如何提取数据到其他层,其他类中
  • 【JS】AI总结:JavaScript中常用的判空方法
  • Rust单元测试、集成测试
  • vue全局方法plugins/utils
  • 高阶算法班从入门到精通之路
  • C++ 左值右值
  • [数据集][目标检测]水面垃圾水面漂浮物检测数据集VOC+YOLO格式3749张1类别
  • [深度学习] 卷积神经网络CNN
  • 区别QPushButton和QToolButton
  • 【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable
  • 超简单的nodejs使用log4js保存日志到本地(可直接复制使用)
  • Python面试宝典第1题:两数之和
  • fastapi集成jwt
  • 自定义一个背景图片的高度,随着容器高度的变化而变化,小于图片的高度时裁剪,大于时拉伸100%展示
  • iPhone怎么恢复删除的数据?几款顶级iPhone数据恢复软件
  • macOS 上或linux安装 Jenkins
  • axios发送数据的几种方式