Docker 部署 MariaDB:轻松搭建开源关系型数据库

Docker基础教程(210)Docker MariaDB数据库镜像的使用:Docker MariaDB指南:容器化你的数据库,让数据管理变得轻松有趣 一键部署,轻松管理,告别数据库环境配置的烦恼 在现代应用开发中,快速部署和可重复的环境配置是提高开发效率的关键。Docker容器化技术正好满足了这一需求,而MariaDB作为MySQL的流行替代品,结合Docker后能为开发提供极大便利。本文将深入解析Docker MariaDB镜像的使用、原理和构建方法,带你领略容器化数据库的魅力。 阅读详情

本文基于 library/mariadb:12.3.3,以 12.3.3 版本实测,测试平台 Ubuntu 24.04 Linux。

MariaDB 是什么

MariaDB 是一套开源的关系型数据库,由 MySQL 的原开发者发起,MariaDB 基金会与 MariaDB 公司维护。业务数据放在表里,应用程序用 SQL 读写,连接方式沿用 MySQL 协议。

与 MySQL 官方发行版相比,MariaDB 保持常用 SQL、客户端和协议兼容,并继续增加自己的功能。本文使用的是 Docker 官方镜像 library/mariadb。

MariaDB 能做什么

  • 存业务记录:表、索引和事务放在一个库里,应用用 SQL 读写。
  • 分开授权:不同应用使用不同用户,权限落在各自的库上。
  • 多程序共用:同一台服务器上的网站和内部工具各自连接。
  • 导入和导出:用 SQL 把库备份出去,或把已有数据导进来。
  • 跟着版本升级:换新版本后,可以更新数据目录里的系统表。

为什么要使用 MariaDB

网站和业务系统把库放在托管服务上时,导出、停机和账号都按对方的规则来。MariaDB 跑在自己的机器上,数据文件在自己的磁盘里。

它适合已经按 MySQL 协议写好连接串,又要把库留在自己服务器上的网站、业务系统和内部工具。

使用 Docker 部署 MariaDB

官方镜像里带有服务器和客户端。本机不用再装数据库软件包。开始之前,先准备好 Docker,并留出存放数据文件的目录。root 口令和业务账号口令在第一次初始化时写入。

下面用 Docker Compose 写好这些参数,启动容器,并在命令行里确认版本和连接。

环境要求

项目建议
系统Linux(本文 Ubuntu 24.04);macOS 把 /www/wwwroot/mariadb 换成 ~/docker/mariadb
DockerEngine + Compose V2(docker compose)
架构linux/amd64、linux/arm64、ppc64le、s390x
磁盘Ubuntu 24.04 上 docker images 显示 DISK 473MB、CONTENT 112MB;数据目录和备份另计
端口宿主机 127.0.0.1:3306 → 容器 3306。容器内监听 3306
工作目录/www/wwwroot/mariadb
docker --version
docker compose version

Linux 未装 Docker 可使用轩辕镜像一键安装脚本:

bash <(wget -qO- https://get.xuanyuan.cloud/docker.sh)

备用地址:

bash <(wget -qO- https://get.xuanyuan.me/docker.sh)

更多见 轩辕镜像使用手册。

标签怎么选

Docker 官方镜像清单 里,12.3.3 与浮动标签 lts、12、12.3 指向同一条 Ubuntu 24.04(Noble)构建。该版本 Dockerfile 标明 release-status 为 Stable、release-support-type 为 Long Term Support。latest 当前指向 13.0.2,基础系统是 Ubuntu 26.04(Resolute)。

命令使用 12.3.3。详情页中文简介仍按 12.0.2、11.8.3 分组。

标签说明是否写入本文命令
12.3.312.3 长期支持线的具体版本,Ubuntu 24.04是
12.3.3-noble、lts-noble与 12.3.3 同一条 Ubuntu 构建否
12.3、12、lts浮动标签,之后会改指向否
13.0.2、13、latest当前最新稳定线,基础系统 Ubuntu 26.04否
13.1.1-rc、13.1-rc候选版本否
11.8.911.8 线的当前具体版本应用必须留在 11.8 时,只替换这一处标签
11.8、11随 11.8 小版本移动否
11.4.13、10.11.19、10.6.28更早的维护线,带具体版本号否。旧应用需要时再改标签
*-ubi、*-ubi9、*-ubi10Red Hat UBI 基础系统否

升级时只改镜像标签,并先做「备份、恢复与升级」里的备份。已经用更高版本初始化的 data/ 不要挂回更低版本。

拉取镜像

用 轩辕镜像 加速拉取:

docker pull docker.xuanyuan.run/library/mariadb:12.3.3

Ubuntu 24.04 实测:

Digest: sha256:2bdff1534a7e569fecaf4b10b66ad0d410806e382d9db29ba305448addda97c4
Status: Downloaded newer image for docker.xuanyuan.run/library/mariadb:12.3.3
docker.xuanyuan.run/library/mariadb:12.3.3

拉取完成后确认本地有这个标签:

docker images docker.xuanyuan.run/library/mariadb:12.3.3
IMAGE                                        ID             DISK USAGE   CONTENT SIZE   EXTRA
docker.xuanyuan.run/library/mariadb:12.3.3   2bdff1534a7e        473MB          112MB

Docker Compose 部署

工作目录是 /www/wwwroot/mariadb。data 对应容器内 /var/lib/mysql,存放数据库文件。conf.d 对应 /etc/mysql/conf.d,放额外的 .cnf。initdb.d 对应 /docker-entrypoint-initdb.d,只在数据目录为空的第一次启动时执行。

data 里已经有 mysql 子目录时,除 MARIADB_AUTO_UPGRADE 以外的初始化变量都不会再生效,也不会改已有账号。

  1. 创建目录,并把所有权交给当前用户,后面的 cat 才能写进去:
sudo mkdir -p /www/wwwroot/mariadb/data /www/wwwroot/mariadb/conf.d /www/wwwroot/mariadb/initdb.d
sudo chown -R "$USER":"$USER" /www/wwwroot/mariadb
  1. data/mysql 还不存在时,再生成两份口令并写入 compose.yaml。root_password.txt 是 root 口令,app_password.txt 是业务账号 app 的口令。umask 077 让这两个文件和 compose.yaml 只有当前用户可读;写完后把 umask 调回 022。
cd /www/wwwroot/mariadb
ROOT_PASSWORD="$(openssl rand -hex 24)"
APP_PASSWORD="$(openssl rand -hex 24)"
umask 077
printf '%s
' "$ROOT_PASSWORD" > root_password.txt
printf '%s
' "$APP_PASSWORD" > app_password.txt
cat > compose.yaml <<EOF
name: mariadb

services:
  mariadb:
    image: docker.xuanyuan.run/library/mariadb:12.3.3
    container_name: mariadb
    restart: unless-stopped
    stop_grace_period: 60s
    environment:
      TZ: Asia/Shanghai
      MARIADB_ROOT_PASSWORD: ${ROOT_PASSWORD}
      MARIADB_DATABASE: app
      MARIADB_USER: app
      MARIADB_PASSWORD: ${APP_PASSWORD}
      MARIADB_AUTO_UPGRADE: "1"
    ports:
      - "127.0.0.1:3306:3306"
    volumes:
      - ./data:/var/lib/mysql
      - ./conf.d:/etc/mysql/conf.d:ro
      - ./initdb.d:/docker-entrypoint-initdb.d:ro
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      start_period: 60s
      interval: 10s
      timeout: 5s
      retries: 5
EOF
umask 022
unset ROOT_PASSWORD APP_PASSWORD
配置项说明
127.0.0.1:3306:3306只在本机发布 3306。同一台机器上的程序连 127.0.0.1
MARIADB_ROOT_PASSWORDroot 口令。官方镜像要求它、空口令、随机口令、口令哈希四者之一
MARIADB_DATABASE / MARIADB_USER / MARIADB_PASSWORD第一次初始化时创建库 app 和用户 app。该用户对这个库拥有全部权限
MARIADB_AUTO_UPGRADE版本需要时运行系统表升级。数据目录已有库时,仍然只有这项会生效
TZ容器系统时区。镜像默认是 UTC
./data数据文件。删除容器不会删除这个目录
./conf.d额外配置。目录可以先空着
./initdb.d初始化脚本。目录可以先空着
stop_grace_period: 60s留给 InnoDB 写完关闭日志。停得太快时,下次启动会做崩溃恢复
healthcheck官方脚本 healthcheck.sh:先确认 TCP 可连,再确认 InnoDB 初始化完成

官方镜像默认把 root 和 MARIADB_USER 的主机部分设为 %。端口只发布在 127.0.0.1,局域网其他机器连不上。入口脚本会先以 root 调整数据目录属主,再降到镜像里的 mysql 用户。compose.yaml 里不要写 user:。

root_password.txt、app_password.txt 和 compose.yaml 里有口令。不要把这三个文件提交到公开仓库,也不要发到聊天记录里。

  1. 要改服务器参数时,在第一次启动前把以 .cnf 结尾的文件放进 conf.d。不改参数就让这个目录空着。容器已经在跑时,写入文件后再执行 docker compose restart mariadb。
cd /www/wwwroot/mariadb
cat > conf.d/99-custom.cnf <<'EOF'
[mariadb]
max_connections = 200
EOF

镜像自身已经写了 host-cache-size=0 和 skip-name-resolve。账号按主机部分匹配,不按客户端域名反查。

  1. 要预置表时,在第一次启动前把 .sql、.sql.gz、.sql.xz、.sql.zst 或 .sh 放进 initdb.d。按文件名顺序执行,SQL 导入 MARIADB_DATABASE 指定的库 app。data/mysql 已经存在时,这些文件不会再执行。
cd /www/wwwroot/mariadb
cat > initdb.d/01-note.sql <<'EOF'
CREATE TABLE IF NOT EXISTS note (
  id INT PRIMARY KEY AUTO_INCREMENT,
  body VARCHAR(255) NOT NULL
);
EOF
  1. 启动。数据目录为空时,初始化完成前没有套接字,健康检查会先停在 starting。start_period 的 60 秒不计入失败次数。
cd /www/wwwroot/mariadb
docker compose up -d

Ubuntu 24.04 实测:

[+] up 2/2
 ✔ Network mariadb_default Created      0.2s
 ✔ Container mariadb       Started      2.1s

启动大约 6 秒时,状态仍是 health: starting,端口已经绑在 127.0.0.1:3306:

NAME      IMAGE                                        COMMAND                  SERVICE   CREATED         STATUS                            PORTS
mariadb   docker.xuanyuan.run/library/mariadb:12.3.3   "docker-entrypoint.s…"   mariadb   6 seconds ago   Up 4 seconds (health: starting)   127.0.0.1:3306->3306/tcp

这时日志还停在初始化。入口脚本写明服务器是 1:12.3.3+maria~ubu2404,并已切换到用户 mysql:

2026-10-11 12:51:06+08:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.
2026-10-11 12:51:06+08:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
2026-10-11 12:51:06+08:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2026-10-11 12:51:06+08:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:12.3.3+maria~ubu2404 started.
2026-10-11 12:51:07+08:00 [Note] [Entrypoint]: Initializing database files
2026-10-11 12:51:07 0 [Warning] mariadbd: io_uring_queue_init() failed with EPERM: sysctl kernel.io_uring_disabled has the value 2, or 1 and the user of the process is not a member of sysctl kernel.io_uring_group. (see man 2 io_uring_setup).
create_uring failed: falling back to libaio

memory.pressure 那一行表示容器里写不了这项 cgroup 文件。io_uring 那一行的下一句是 falling back to libaio,服务器改用 libaio,初始化继续。

这个时间点执行客户端,会得到:

ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)

套接字要等初始化结束才出现。看到这句时不要 docker compose down,也不要删除 data/ 或重新生成口令。

  1. 等到健康状态变成 healthy,再做下一节的查询。循环每 3 秒看一次。若一直停在 starting,按 Ctrl+C 停下,再看 docker compose logs --tail 80 mariadb。
cd /www/wwwroot/mariadb
until [ "$(docker inspect -f '{{.State.Health.Status}}' mariadb)" = "healthy" ]; do
  sleep 3
done
docker compose ps
docker compose logs --tail 30 mariadb

连接数据库

先完成上一节的等待。root 在容器里走套接字。业务账号从同一 Docker 网络里的其他容器走 TCP。口令来自上面两个文件,命令替换会去掉末尾换行。-p 紧贴口令时,口令会出现在进程参数里。

  1. 在数据库容器里用 root 查看版本:
cd /www/wwwroot/mariadb
docker compose exec mariadb mariadb -uroot -p"$(cat root_password.txt)" -e "SELECT VERSION();"

Ubuntu 24.04 实测:

+------------------------+
| VERSION()              |
+------------------------+
| 12.3.3-MariaDB-ubu2404 |
+------------------------+
  1. 用另一个容器,走 Compose 网络,以用户 app 连库 app。项目名是 compose.yaml 里的 name: mariadb,默认网络名是 mariadb_default,主机名是服务名 mariadb。
cd /www/wwwroot/mariadb
docker run --rm --network mariadb_default 
  docker.xuanyuan.run/library/mariadb:12.3.3 
  mariadb -hmariadb -uapp -p"$(cat app_password.txt)" app -e "SELECT DATABASE(), CURRENT_USER();"

Ubuntu 24.04 实测:

DATABASE()      CURRENT_USER()
app     app@%

同一 Compose 项目里的其他服务,主机名写 mariadb,端口写 3306,库名 app,用户 app,口令与 app_password.txt 相同。应用配置里写用户 app 的口令,不写 root 口令。

宿主机上没有 mariadb 命令。连接用镜像里的 12.3.3 客户端。手输口令时出现的 ERROR 1045 见「常见问题」。

备份、恢复与升级

备份使用同一标签里的 mariadb-dump,客户端和服务器版本一致。导出文件放在工作目录,文件名带当天日期。

cd /www/wwwroot/mariadb
docker compose exec mariadb 
  mariadb-dump -uroot -p"$(cat root_password.txt)" --all-databases --single-transaction 
  > "backup-$(date +%F).sql"

Ubuntu 24.04 上这条命令回到提示符,没有报错。当天 date +%F 是 2026-10-11,文件名是 backup-2026-10-11.sql。

恢复会在当前数据目录上重放这份 SQL。先确认文件名,再确认要灌回这份备份:

cd /www/wwwroot/mariadb
ls -l backup-*.sql
docker compose exec -T mariadb 
  mariadb -uroot -p"$(cat root_password.txt)" < backup-2026-10-11.sql

backup-2026-10-11.sql 是这次备份的文件名。换一天备份,把重定向改成 ls 列出的那一个。

以后要升级时,先做上面的备份,再改 compose.yaml 里的镜像标签,然后重新启动。MARIADB_AUTO_UPGRADE 已经打开。入口脚本会在需要时更新系统表,并在数据目录顶层留下 system_mysql_backup_*.sql.zst。

cd /www/wwwroot/mariadb
docker compose up -d
docker compose exec mariadb mariadb -uroot -p"$(cat root_password.txt)" -e "SELECT VERSION();"

日志若出现 Upgrade after a crash is not supported,上一版没有正常关闭。先把标签改回日志里写出的那个大版本,正常停止并看到 Shutdown complete 之后,再换成新标签。停止宽限不够时,把 stop_grace_period 加大。

备选:docker run

没有 Compose 时再用这一节。工作目录、口令文件和三个子目录与「Docker Compose 部署」相同。已经有名为 mariadb 的容器时,不要再执行 docker run,也不要重新生成口令文件。

data/mysql 还不存在、口令文件也还没有时,先生成口令:

cd /www/wwwroot/mariadb
ROOT_PASSWORD="$(openssl rand -hex 24)"
APP_PASSWORD="$(openssl rand -hex 24)"
umask 077
printf '%s
' "$ROOT_PASSWORD" > root_password.txt
printf '%s
' "$APP_PASSWORD" > app_password.txt
umask 022
unset ROOT_PASSWORD APP_PASSWORD

启动:

docker run -d 
  --name mariadb 
  --restart unless-stopped 
  --stop-timeout 60 
  -p 127.0.0.1:3306:3306 
  -v /www/wwwroot/mariadb/data:/var/lib/mysql 
  -v /www/wwwroot/mariadb/conf.d:/etc/mysql/conf.d:ro 
  -v /www/wwwroot/mariadb/initdb.d:/docker-entrypoint-initdb.d:ro 
  -e TZ=Asia/Shanghai 
  -e MARIADB_ROOT_PASSWORD="$(cat /www/wwwroot/mariadb/root_password.txt)" 
  -e MARIADB_DATABASE=app 
  -e MARIADB_USER=app 
  -e MARIADB_PASSWORD="$(cat /www/wwwroot/mariadb/app_password.txt)" 
  -e MARIADB_AUTO_UPGRADE=1 
  --health-cmd 'healthcheck.sh --connect --innodb_initialized' 
  --health-interval 10s 
  --health-timeout 5s 
  --health-retries 5 
  --health-start-period 60s 
  docker.xuanyuan.run/library/mariadb:12.3.3

日志里出现 ready for connections 之后再查询。启动后立刻查询会报 ERROR 2002。

docker ps --filter name=mariadb
docker logs --tail 80 mariadb
docker exec mariadb mariadb -uroot -p"$(cat /www/wwwroot/mariadb/root_password.txt)" -e "SELECT VERSION();"

要停掉容器时再执行:

docker stop mariadb

这一节没有 Compose 网络。其他容器要连接时,创建一个网络,把数据库容器和业务容器都加入该网络,主机名用 mariadb。

常见问题

Q1:latest 或 lts 能不能写进 Compose?

命令里写 12.3.3。lts、12、12.3 当前也指向这一版本,以后会改指向。latest 当前指向 13.0.2。对照见「标签怎么选」。

Q2:详情页中文简介仍是 12.0.2 和 11.8.3?

中文简介仍按这两个版本分组。拉取的标签是 docker.xuanyuan.run/library/mariadb:12.3.3。

Q3:容器退出,日志要求设置 root 口令?

数据目录为空时,必须提供 MARIADB_ROOT_PASSWORD、MARIADB_RANDOM_ROOT_PASSWORD、MARIADB_ROOT_PASSWORD_HASH、MARIADB_ALLOW_EMPTY_ROOT_PASSWORD 之一,或者对应的 _FILE 变量。这里使用 MARIADB_ROOT_PASSWORD。空口令会让 root 没有保护。

Q4:改了 compose.yaml 里的口令或库名,库里却没变?

data/mysql 已经存在时,初始化变量不再执行。口令以第一次初始化的结果为准。查询时读 root_password.txt 和 app_password.txt 里的原口令。

Q5:root 从容器外连不上?

官方镜像默认把 root 的主机部分设为 %。只有把 MARIADB_ROOT_HOST 设成 localhost 时,root 才只能走容器内套接字。这项只在数据目录为空的第一次启动时生效。应用连接用用户 app。

Q6:宿主机执行 mariadb 提示找不到命令,装上之后 ERROR 1045?

Ubuntu 24.04 上执行 mariadb -h 127.0.0.1 -P 3306 -uapp -p app,提示 Command 'mariadb' not found, but can be installed with: apt install mariadb-client-core。按提示安装后,包版本是 1:10.11.14-0ubuntu0.24.04.1。在 Enter password: 里手输口令,返回:

ERROR 1045 (28000): Access denied for user 'app'@'172.26.0.1' (using password: YES)

172.26.0.1 是访问发布端口时服务器看到的来源地址。同一份 app_password.txt 交给镜像里的 12.3.3 客户端时,CURRENT_USER() 是 app@%。连接步骤使用镜像里的客户端,并用 $(cat app_password.txt) 读口令。

Q7:ERROR 2002,找不到 /run/mysqld/mysqld.sock?

状态仍是 health: starting、日志还停在 Initializing database files 时,套接字还不存在。按「Docker Compose 部署」等到 healthy 再查询。不要删除 data/,也不要重新生成口令。

磁盘较慢时,入口脚本启动临时服务器若超过约 30 秒,日志里会有 Unable to start server。把数据目录放在本机磁盘上,再启动一次。

Q8:日志里有 io_uring EPERM 和 memory.pressure?

这次启动就有这两行。falling back to libaio 表示服务器改用 libaio。memory.pressure not writable 表示容器里写不了这项 cgroup 文件。初始化会继续。

Q9:局域网里的其他机器要连这台库?

把端口从 127.0.0.1:3306:3306 改成 3306:3306,然后执行 docker compose up -d。在防火墙里限制来源地址。应用仍使用用户 app。不要对公网开放 3306。

Q10:和 MySQL 镜像、其他 MariaDB 镜像怎么区分?

library/mysql 是 MySQL 官方镜像。library/mariadb 是 MariaDB 的 Docker 官方镜像,协议与常用客户端兼容。10.6 及以后,账号变量使用 MARIADB_*,并优先于同名的 MYSQL_*。linuxserver/mariadb 和 bitnami/mariadb 的环境变量、数据目录约定不同。这里部署的是 library/mariadb。

Q11:拉取报 no matching manifest?

12.3.3 提供 linux/amd64、linux/arm64、ppc64le、s390x。机器架构不在这四项里时,这个标签没有对应清单。UBI 标签的 CPU 基线与这份 Ubuntu 标签不同,命令里不使用 UBI。

Q12:日志里是 Permission denied?

Errcode: 13 表示容器里的 mysql 用户写不了 /var/lib/mysql。入口脚本要先以 root 运行,才能改这个目录的属主。compose.yaml 里不要写 user:。已经写过的,删掉该项后再执行 docker compose up -d。

Q13:忘记 root 口令,文件也丢了?

口令文件还在时,用文件里的口令。文件丢失时,官方做法是准备一段 CREATE USER / SET PASSWORD 的 SQL,用一次 --init-file 挂到现有数据目录上执行,然后再按原来的方式启动。步骤见 Docker 官方镜像常见问题。

命令速查

docker pull docker.xuanyuan.run/library/mariadb:12.3.3

cd /www/wwwroot/mariadb
docker compose up -d
docker compose ps
docker compose logs --tail 30 mariadb
docker compose exec mariadb mariadb -uroot -p"$(cat root_password.txt)" -e "SELECT VERSION();"

docker compose restart mariadb
docker compose stop
docker compose start
docker compose down

docker compose down 不会删除 data/。没有 Compose 时用「备选:docker run」里的命令。业务账号的连接命令见「连接数据库」。

延伸阅读

资源链接
library/mariadb 镜像页https://xuanyuan.cloud/zh/r/library/mariadb
library/mariadb 概览https://xuanyuan.cloud/r/library/mariadb
library/mariadb 标签列表https://xuanyuan.cloud/r/library/mariadb/tags
Docker Hub · mariadbhttps://hub.docker.com/_/mariadb
GitHub · MariaDB/mariadb-dockerhttps://github.com/MariaDB/mariadb-docker
官方镜像标签清单https://github.com/docker-library/official-images/blob/master/library/mariadb
MariaDB 官网https://mariadb.org/
官方镜像环境变量https://mariadb.com/kb/en/mariadb-server-docker-official-image-environment-variables/
healthcheck.sh 说明https://mariadb.com/docs/server/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/using-healthcheck-sh
Docker 官方镜像常见问题https://mariadb.com/docs/server/server-management/automated-mariadb-deployment-and-administration/docker-and-mariadb/docker-official-image-frequently-asked-questions
轩辕镜像使用手册https://xuanyuan.cloud/usage

阅读原文

  • 轩辕镜像官方博客:https://xuanyuan.cloud/blog/mariadb-docker-deploy
Docker搭建Mariadb MariaDB 是一个开源的关系型数据库管理系统,是 MySQL 的一个分支,兼容性很高,提供了稳定、高性能的数据库服务。Mariadb Docker 镜像将 MariaDB 打包为 Docker 容器,使得在不同的环境中快速部署和运行 MariaDB 成为可能。 阅读详情

相关推荐

MacOS上如何修改jupyter book的默认打开地址以及如何复制文件路径

记点笔记,才换新系统小半年,还是不太熟悉,所以记录一下笔记,感觉之后也会用到,希望能帮到你们。主要内容是:修改jupyter的默认地址以及复制文件路径。

魔仙的博客 1977

云原生之使用Docker部署Mariadb数据库

MariaDB是一个开源的关系型数据库管理系统(RDBMS),它是MySQL数据库的一个分支。MariaDB由MySQL的创始人之一Michael Widenius创建,旨在提供一个更稳定、更开放、更强大的数据库管理系统。

2301_77899321的博客 2646

SAP成本核算-事中控制(成本对象控制/成本归集与结算)

本文详细介绍了SAP系统中工单成本归集与结算的全流程管理。主要内容包括:1)工单成本三阶段归集(投料、报工、入库)的具体操作与计算方法;2)工单实际成本结算七步骤:从实际费用归集、成本分割、作业价格计算到差异结算的全过程;3)关键注意事项如测试运行验证、价格单位确认、无在制品处理等。通过标准价计算、实际作业重估等机制,系统实现了生产成本从计划到实际的精确核算,最终生成财务所需的差异结算凭证。所有操作均提供单工单和批量处理两种方式,满足不同业务场景需求。

小九啥也不会 1361

TeamSpeak 6 Server Docker部署终极指南:SQLite与MariaDB双数据库实战方案

TeamSpeak 6 Server是一款备受期待的下一代语音通信服务器软件,作为Beta版本,它为游戏、教育和企业通信提供了高质量的语音解决方案。本文将详细介绍如何通过Docker容器技术快速部署TeamSpeak 6 Server,并深入探讨SQLite和MariaDB两种数据库方案的配置方法,帮助您轻松搭建稳定高效的语音服务器环境。💬 ## 📋 前置准备与环境要求 在开始部署之前,请

gitblog_00133的博客 954

条件DDPM:Diffusion model的第三个巅峰之作

前言:DDPM从2020年诞生,短短一年的时间,模型上有两个巨大的改进,其中一个就是condition的引入,最近大部分DDPM相关的论文都会讨论这一点,有些文章称之为latent variable。和当年GAN的发展类似,CGAN和DCGAN的出现极大程度上促进了GAN的发扬光大,意义重大。本文基于前面几篇文章继续聊一聊: 从VAE到Diffusion Model_沉迷单车的追风少年-优快云博客 为什么diffusion model扩散模型可以称为score-based models?_沉迷单车的.

沉迷单车的追风少年 1万+

Cesium 实战 28 - 三维视频融合(视频投影)

Cesium 实战 27 - 三维视频融合(视频投影)。

非科班Java出身GISer的博客 3366

docker-mariadb:为数据库管理提供强大支持

docker-mariadb:为数据库管理提供强大支持 项目介绍 docker-mariadb 是由 LinuxServer.io 团队开发的一个开源项目,它基于 Docker 容器技术,为用户提供了一个便捷、高效的方式来部署和管理 MariaDB 数据库。MariaDB 是一个流行的开源数据库服务器,由 MySQL 的原始开发者创建,旨在提供一种功能丰富、兼容性强的数据库解决方案。 这个项目通过...

gitblog_00066的博客 922

从0入门LocoTrack:6倍加速的SLAM追踪新范式实战指南

传统点追踪方法(如CorrTracker、TAPIR)在处理大规模场景或实时任务时,要么精度不足,要么速度太慢。而LocoTrack通过“局部4D相关性”和“Transformer全局关联”的创新设计,实现了精度与速度的双重突破速度:比现有SOTA方法快6倍,吞吐量高达数万点/秒;精度:在Kinetics、DAVIS等数据集上,定位误差显著低于传统方法;鲁棒性:能应对低纹理、动态场景等复杂环境,这是传统方法的“噩梦场景”。

m0_71589036的博客 95

Servas容器化部署:Docker与Kubernetes环境搭建指南

Servas作为一款自托管书签管理工具,让用户能够轻松管理个人书签。本文将详细介绍如何通过Docker和Kubernetes实现Servas的容器化部署,帮助新手用户快速上手搭建属于自己的书签管理系统。 ## Docker快速部署:3分钟启动Servas服务 ### 准备工作 首先确保你的系统已经安装了Docker和Docker Compose。如果尚未安装,可以参考Docker官方文档进行安

gitblog_00131的博客 987

Linux系统中u-boot启动流程分析(详解)

代码部分,具体如下;

嵌入式技术开发 1989

Android 蓝牙——概述(一)

Profiles (蓝牙应用规范),它从应用场景的角度为蓝牙技术的使用制定了不同的规范。这也是和大众日常生活接触最多的一部分。蓝牙支持很多Profiles:MAP:(MessageAccessProfile),短信访问协议,允许设备间的信息交换,短信。使用场景:智能车载中同步短信等信息。HFP:(Hands-free Profile),电话免提协议,让蓝牙设备(如蓝牙耳机/车机)可以控制电话,如接听、挂断、拒接等。

小旭的专栏 3489

Docker使用MariaDB

这篇文章主要分为两个部分。 第一部分通过描述使用场景介绍为什么要使用 Docker 以及在 Docker 中使用 MariaDB 有什么优势。 接下来在第二部分中详细介绍如何安装 Docker ,使用 MariaDB 镜像以及如何挂载数据卷以及迁移数据的技巧。为什么要使用 Docker程序的开发过程中,尤其是涉及服务器的开发,往往部署的服务器和开发的电脑不是一样的环境,而在现实中,不同的开发者的

SpeculateCat 6690

微信小程序 - 详细实现可移动悬浮按钮,全屏悬浮元素图标可拖动拖拽并自动吸附边缘,微信小程序实现悬浮球吸附边缘+计算靠边靠拢效果(详细代码,拖拽中途放手,靠左就自动跑到屏幕左侧,反之靠右跑到屏幕右侧)

微信小程序,vue2,vue3,微信小程序悬浮功能小按钮,自动吸附边缘效果,微信小程序之可拖动悬浮按钮的实现,如何实现靠近边缘自动吸住功能,小程序右下角的悬浮效果,实现可拖动悬浮图标,自动向两边靠拢,悬浮按钮的实现,微信小程序悬浮球效果,微信小程序(可拖动悬浮按钮)当靠近屏幕边缘时会磁吸靠近,如何实现全局悬浮按钮,悬浮球判断吸附在左右,全屏悬浮能拖着走,小程序怎么做悬浮图标靠近左右两侧能吸附住,悬浮菜单按钮,悬浮球可拖拽,全局悬浮球,全局悬浮框,实现悬浮按钮可拖动,自动吸附边缘效果,若按钮此时位于页面中间偏

🏆 前端领域优质创作者 1万+

在 Ubuntu 下通过 Docker 部署 MariaDB 服务器

在 Ubuntu 下通过 Docker 部署 MariaDB 服务器

shelby_loo的博客 990

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【k8s】k8s部署mariadb数据库

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。mariadb快速搭建,操作前一定要有StorageClass根据PVC动态生成PV并绑定,这样数据库生成的数据可以挂载出来。

一起加油吧 2061

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用 Docker 部署 PhotoPrism:打造你的个人智能相册

通过 Docker 部署 PhotoPrism,你可以轻松搭建一个功能强大的个人照片管理系统。结合 AI 技术,PhotoPrism 能够自动分类和标记照片,让你的照片管理更加高效。希望本文能帮助你快速上手 PhotoPrism。如果你有任何问题或建议,欢迎在评论区留言!

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 3928

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

每天半小时,轻松学Docker第八篇:Docker应用部署实训案例

1) 创建临时测试容器2) 在容器内创建目录结构3) 从宿主机拷贝文件到容器4) 在容器内安装依赖5) 测试应用6) 创建自定义镜像python-tmp。

1119

Docker部署PinePods教程:3步搭建属于你的播客服务器

PinePods是一个完整的播客管理系统,让你能够播放、下载和追踪你喜欢的播客。通过Docker部署,你可以轻松搭建属于自己的播客服务器,享受完全自主托管的播客体验。 [![PinePods播客服务器标志](https://raw.gitcode.com/gh_mirrors/pi/PinePods/raw/ef3a927275ee641b7ef28b7b10b3375dca57755c/fas

gitblog_00017的博客 952

Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台

Dolibarr 是面向中小企业的开源 ERP 与 CRM 套件,可在浏览器里管客户、报价、发票与库存。本文将介绍如何通过 Docker Compose 部署官方镜像 dolibarr/dolibarr 并配套 MariaDB,用轩辕镜像加速拉取,适合内网自托管与小型团队私有化。

java_logo的专栏 222

别再只用套件中心了!手把手教你用Docker在群晖上部署最新版MariaDB

本文详细介绍了如何在群晖NAS上通过Docker部署最新版MariaDB,替代套件中心的传统安装方式。从环境准备、容器创建到高级配置和安全加固,手把手教你实现版本自由选择、资源精确控制和环境隔离,充分发挥群晖设备的数据库管理潜力。

weixin_30530939的博客 472

AgenDAV部署攻略:Docker环境下快速搭建步骤

AgenDAV是一款类似Google Calendar的CalDAV网页客户端,本文将详细介绍如何在Docker环境下快速部署AgenDAV,让你轻松拥有功能强大的日历管理工具。 ## 准备工作:环境与工具要求 在开始部署前,请确保你的系统已满足以下条件: - 已安装Docker Engine(推荐20.10+版本) - 已安装Docker Compose(推荐v2+版本) - 至少1GB可用

gitblog_00420的博客 486

Linux系统使用Docker compose搭建开源文档系统Paperless-ngx

本文主要介绍如何在Linux系统本地部署Paperless-ngx开源文档管理系统,并结合cpolar内网穿透工具解决本地部署后因为没有公网IP受到局域网访问限制,在异地也能随时远程访问的困扰。Paperless-ngx是一个开源的文档管理系统,可以将物理文档转换成可搜索的在线档案,从而减少纸张的使用。它内置了OCR功能,可以自动对上传的扫描文档执行OCR,识别文档中的文字,并将其转换为可编辑和可搜索的文本格式。然后,系统会对文档进行分类和索引,以便用户可以随时搜索查阅。

Yawesh的博客 3443

Docker 部署 ERPNext:轻松搭建开源 ERP 企业管理平台

ERPNext 是 Frappe Technologies 维护的免费开源 企业资源规划(ERP) 系统,跑在自家的 Frappe 低代码框架上。同一套 Web Desk 里集成财务会计(总账、应收应付、发票与报表)、供应链(采购、库存、销售)、生产制造(BOM、工单、委外)、固定资产、项目与质量,以及公司 / 用户 / 权限等组织主数据;业务流程可按行业勾选模块,单据之间能互相带出,减少「多系统对账」。源代码可按需二次开发,无按席位收取的许可费。实例跑在你自己的 Docker 主机上...

java_logo的专栏 372

每天半小时,轻松学Docker第十五篇:Docker Compose案例3-MariaDB主从与读写分离服务部署

本文详细介绍了使用Docker Compose部署MariaDB主从服务和读写分离服务的完整流程。主要内容包括:1) 创建项目目录和配置文件;2) 编写MariaDB主从配置、Dockerfile和compose.yaml文件;3) 构建镜像并启动服务;4) 验证主从同步和数据读写功能;5) 配置MyCat中间件实现读写分离;6) 测试集群运行状态。通过完整的操作步骤和配置文件示例,展示了如何利用Docker Compose快速搭建高可用的数据库集群环境,并最终完成了服务清理和资源释放。

1097

如何用Chat2DB实现智能数据库管理:新手快速入门指南

Chat2DB是一款革命性的AI驱动数据库管理工具,它彻底改变了传统SQL客户端的使用体验。这个开源数据库管理工具不仅支持16+种主流数据库,还能通过AI智能生成SQL语句,让数据库管理变得更加简单高效。无论你是数据库管理员、开发者还是数据分析师,Chat2DB都能显著提升你的工作效率。 ## 🚀 为什么选择Chat2DB? 在开始之前,你可能会有疑问:市面上已经有那么多数据库客户端,为什么

gitblog_00133的博客 1114

PowerShell 7 pwsh 安装失败修复指南:10 分钟装好

PowerShell 7 的 pwsh 装完了,一敲命令就提示找不到?或者安装到一半直接报错?这篇文章带你把 pwsh 安装失败修复走一遍:先用两条命令定位卡点,再对照报错找病因,然后用官方脚本装好。按下面的步骤走一遍基本就能跑通。 [![PowerShell 7 pwsh 安装失败修复:PowerShell 吉祥物提示窗](https://raw.gitcode.com/GitHub_Tren

gitblog_00862的博客 383
上一篇: Docker 部署 Portainer CE:轻松搭建容器管理平台
下一篇: Docker 部署 Halo:轻松搭建开源个人博客
java_logo
博客等级 码龄18年 325粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值