Minetest支持的数据库

Minetest支持多个数据库后端。此页面提供所有后端的比较。

Minetest(从5.0.0版本开始)有三个数据库后端:

  • 地图
  • 玩家
  • 验证

地图后端

使用world.mt中的 设置来backend 设置数据库后端。将后端名称以小写形式作为设置的值(例如,对于SQLite3)。 backend=sqlite3

如果要将世界地图迁移到新的后端,请使用minetestserver --migrate <name of new backend> --world <path to your world directory>

如果在Windows中使用minetest.exe,则可以使用“ minetest --server ”给出服务器指令,例如minetest --server --migrate <name of new backend> --world <path to your world directory>

玩家后端

使用world.mt中的 设置来player_backend 设置数据库后端。

如果要将玩家迁移到新的后端,请使用minetestserver --migrate-players <name of new backend> --world <path to your world directory>

认证后端

使用world.mt中的 设置来auth_backend 设置数据库后端。

如果要将身份验证数据迁移到新的后端,请使用minetestserver --migrate-auth <name of new backend> --world <path to your world directory>

比较表

Backend Speed Reliability Compatibility with builds Map Players Authentication
SQLite3 Good Acceptable (problems can arise with concurrent accesses) Very good (always supported) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
LevelDB Good Good Mostly supported :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Redis Very good (data kept in RAM) Good Inconvenient (Redis server required) :heavy_check_mark:
PostgreSQL Very good (most used data are in memory, others from disk) Very good Inconvenient (PostgreSQL server required) :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
Dummy Blazing fast N/A (nothing is saved to disk) None (nothing is saved to disk) :heavy_check_mark: :heavy_check_mark:
Files (deprecated) Bad Bad Deprecated (support may be removed) :heavy_check_mark: :heavy_check_mark:

仅当您要分发世界时,“与建筑物兼容性” 列才相关。

SQLite3

SQLite3是所有Minetest世界的默认后端,每个Minetest构建都支持SQLite3,因此它是用于分发世界的标准数据库格式。

LevelDB

LevelDB主要用于服务器,因为它具有更高的可靠性和速度。您需要另外安装它。

Redis

Redis支持于2014年4月添加到Minetest中,Redis主要用于服务器,因为它允许将多个世界存储在一个Redis实例中。您需要另外安装它(libhiredis 库)。

可在以下位置找到有关设置Redis服务器的信息:https : //redis.io/topics/quickstart

Redis的world.mt设置

redis_address - 在IP或Redis的服务器的主机名。

redis_port - Redis的服务器的端口。可选,默认值:6379

redis_hash - 存放MapBlocks的哈希,如果要在一个Redis实例中包含多个世界,则每个世界都需要不同。如果不需要,可以使用eg IGNORED

PostgreSQL的

PostgreSQL支持于2016年5月添加到Minetest中,它主要用于服务器,因为它允许在单个实例中的多个数据库中使用多个世界。

PostgreSQL是Redis的绝佳替代品。它不会将所有数据存储在内存中,而只会将最近且频繁的数据加载到内存中。所有数据都在磁盘存储上,并且数据存储非常可靠。您还可以轻松地在数据库前连接网站,为用户提供前端。

虽然我们支持旧版本,但建议至少使用PostgreSQL 9.5。

为了使用Minetest服务器提高PostgreSQL的性能,请配置postgresql.conf 最少shared_buffer 512MB的内存,最多配置服务器可用RAM的50%。

PostgreSQL的world.mt

pgsql_connection - 世界地图的PostgreSQL连接字符串| 主机= <db_host>用户= <db_user>密码= <db_password> dbname = <db_name>

pgsql_player_connection - 球员的PostgreSQL连接字符串| 主机= <db_host>用户= <db_user>密码= <db_password> dbname = <db_name>

Dummy

一个Dummy后端,它将所有MapBlock存储在RAM中而不保存它们。这意味着,一旦服务器关闭或您离开单人游戏,对世界所做的所有更改都会丢失。当您重新加入时,世界将从头开始重新生成。

这个后端没有得到广泛使用,但是不需要持久映射的服务器使用它,例如,捕获标志。

Files

玩家和身份验证数据的旧版后端。一切都存储在纯文本文件中。它缓慢,不可靠且笨拙。现在不鼓励使用此后端,并且将来可能会删除该后端。