Lingarr数据库选型指南:MySQL/PostgreSQL/SQLite三种方案对比与配置 Lingarr数据库选型指南MySQL/PostgreSQL/SQLite三种方案对比与配置【免费下载链接】lingarrLingarr is an application that supports both local and SaaS translation services to translate subtitle files into a specified target language. With automated translation options, Lingarr simplifies translating subtitles.项目地址: https://gitcode.com/gh_mirrors/li/lingarrLingarr是一款开源的字幕翻译工具支持接入DeepL、OpenAI、Gemini等十多种翻译服务可自动将字幕文件翻译成指定语言。在使用Lingarr时数据库选型是部署环节中最关键的决策之一它直接关系到安装难度、数据安全与长期运行稳定性。本文将从零开始对比Lingarr支持的MySQL、PostgreSQL与SQLite三种数据库方案并给出最实用的Lingarr数据库配置方法帮助你一次部署成功。为什么需要关注Lingarr数据库选型Lingarr不仅存储电影、剧集等媒体信息还会记录每一次字幕翻译请求、翻译进度事件以及统计数据。这些数据在批量翻译时会高频读写选错数据库轻则性能下降重则导致字幕翻译任务中断。因此在安装前花5分钟了解三种方案远比事后迁移省心。三种数据库方案速览一张表看懂差异对比维度MySQLMariaDBPostgreSQLSQLite部署方式独立容器服务独立容器服务嵌入式随应用运行推荐场景家庭媒体库、多设备访问追求极致稳定与兼容性单机轻量部署、低配置设备资源占用中等中等偏高极低备份方式需要额外配置需要额外配置直接复制文件即可配置复杂度中中低Lingarr默认方案✅ 默认支持支持从表格可以看出Lingarr默认使用MySQL同时也完整支持PostgreSQL与SQLite。你只需通过一个环境变量即可切换无需修改任何业务代码。如何选择最适合你的数据库方案选MySQLMariaDB零成本上手官方默认Lingarr的Docker部署文档默认使用MySQL相关的迁移脚本、健康检查配置最成熟。如果你已有NAS或软路由上的MariaDB/MySQL实例直接复用是最省事的选择。需要留意的是Lingarr默认连接的3306端口实际开发配置里映射为宿主机1433端口避免冲突。选PostgreSQL数据严谨性优先PostgreSQL对时间戳、复杂查询的支持更完善。Lingarr在PostgreSQL下会自动将DateTime字段转换为UTC存储见LingarrDbContext.cs避免时区混乱问题。适合需要长期保留翻译记录、注重数据一致性的用户。选SQLite单机轻量部署的首选SQLite无需独立数据库容器数据就是一个本地文件天然适合树莓派、低功耗NAS这类设备。Lingarr为SQLite做了专门的WAL模式优化详见下文即使没有数据库服务也能稳定运行。Lingarr数据库配置核心环境变量详解Lingarr的所有数据库配置都通过环境变量完成核心变量如下环境变量说明示例DB_CONNECTION数据库类型可选mysql、postgresql、sqlitemysqlDB_HOST数据库主机名MySQL/PostgreSQL必填lingarr-dbDB_PORT数据库端口3306/5432DB_DATABASE数据库名称lingarrDB_USERNAME数据库用户名lingarrDB_PASSWORD数据库密码自定义强密码SQLITE_DB_PATHSQLite数据库文件路径local.dbDB_HANGFIRE_SQLITE_PATH后台任务库路径Hangfire/app/config/Hangfire.db这些变量的解析逻辑统一封装在DatabaseConfiguration.cs中三种数据库共享同一套参数体系切换时只需改动DB_CONNECTION。MySQL配置方法最快速的Lingarr数据库安装步骤使用Docker Compose部署Lingarr MariaDB是最快的配置方法只需两步第一步配置数据库服务lingarr-db: image: mariadb:latest restart: unless-stopped environment: - MYSQL_DATABASElingarr - MYSQL_USERlingarr - MYSQL_PASSWORD你的强密码 - MYSQL_ROOT_PASSWORD你的强密码 volumes: - /path/to/db:/var/lib/mysql healthcheck: test: mariadb $$MYSQL_DATABASE -u$$MYSQL_USER -p$$MYSQL_PASSWORD -e SELECT 1; interval: 10s timeout: 5s retries: 5第二步在Lingarr服务中声明数据库连接lingarr: image: ghcr.io/lingarr-translate/lingarr:latest environment: - DB_CONNECTIONmysql - DB_HOSTlingarr-db - DB_PORT3306 - DB_DATABASElingarr - DB_USERNAMElingarr - DB_PASSWORD你的强密码 depends_on: lingarr-db: condition: service_healthy⚠️ 务必使用healthcheckdepends_on组合。Lingarr启动时就会执行数据库迁移若数据库尚未就绪会导致首次迁移失败这一点在官方文档installation.md中也有特别提示。PostgreSQL配置方法稳定可靠的替代方案PostgreSQL的配置与MySQL几乎一致只需修改镜像和端口lingarr-db: image: postgres:16-alpine restart: unless-stopped environment: - POSTGRES_DBlingarr - POSTGRES_USERlingarr - POSTGRES_PASSWORD你的强密码 healthcheck: test: [CMD-SHELL, pg_isready -U lingarr -d lingarr] interval: 10s timeout: 5s retries: 5Lingarr侧的改动只有两处- DB_CONNECTIONpostgresql - DB_PORT5432其余变量保持不变。Lingarr会自动识别postgres与postgresql两种写法连接字符串会带上Host、Port、Username、Password等标准参数无需手工拼接。SQLite配置方法三步完成轻量部署SQLite是三种方案中配置最简单的连数据库容器都不需要lingarr: image: ghcr.io/lingarr-translate/lingarr:latest environment: - DB_CONNECTIONsqlite - SQLITE_DB_PATHlocal.db volumes: - /path/to/config:/app/config只需三步设置DB_CONNECTIONsqlite、指定数据库文件名、挂载配置目录。Lingarr会把local.db自动放到容器内的/app/config/目录下与配置文件一同持久化备份时直接复制整个配置目录即可。SQLite专属优化WAL模式让翻译更流畅字幕翻译是典型的多读多写场景SQLite默认的日志模式容易出现锁等待。Lingarr通过内置的SqlitePragmaConnectionInterceptor.cs在每次连接时自动执行三条PRAGMA优化journal_modeWAL启用预写日志读写互不阻塞busy_timeout120000写锁等待超时延长到120秒避免大批量翻译时误报锁错误synchronousNORMAL在性能与数据安全间取得平衡这意味着即使你选择轻量的SQLite也能稳定扛住整季剧集的字幕批量翻译任务。常见问题与排错指南Q1启动时提示DB_CONNECTION is not set说明环境变量未生效。检查DB_CONNECTION是否设置可用值只有mysql、postgresql、sqlite三种。Q2首次启动时数据库迁移失败绝大多数情况是数据库容器尚未就绪。请为数据库服务配置健康检查并在Lingarr服务上使用depends_on.condition: service_healthy等待其就绪。Q3SQLite数据库文件存在哪里默认在容器内/app/config/local.db注意把/app/config挂载到宿主机目录否则容器重建后数据会丢失。Q4三种数据库之间能互相切换吗Lingarr的数据库迁移由FluentMigrator统一管理见MigrationConfiguration.cs理论上支持切换但跨库迁移涉及数据导出导入建议在部署初期就确定方案避免后期迁移成本。总结一张决策清单帮你收尾家庭NAS、已有数据库实例→ 选 MySQL/MariaDB配置最省心注重数据一致性、需要长期保留翻译记录→ 选 PostgreSQL树莓派、低配设备、单机使用→ 选 SQLite零依赖无论选哪种→ 务必设置强密码、挂载数据卷、配置健康检查Lingarr的数据库选型并不复杂核心就是理解DB_CONNECTION这一个变量。希望这份对比与配置指南能帮你一次性部署成功早日享受自动化字幕翻译的乐趣【免费下载链接】lingarrLingarr is an application that supports both local and SaaS translation services to translate subtitle files into a specified target language. With automated translation options, Lingarr simplifies translating subtitles.项目地址: https://gitcode.com/gh_mirrors/li/lingarr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考