安装与配置 - Rothes/Prism-Bukkit GitHub Wiki
请记住: 如果您需要帮助, 欢迎向我们寻求支持.
- 将 Prism.jar 文件放入您的 Bukkit /plugins 目录中.
- 启动您的服务器, 一个初始配置文件会生成在插件目录 /plugins/Prism 中. 这是必须的步骤.
- 很重要的一点, 您必须配置数据库连接.
- 如果您需要架设 MySQL 或 sqlite (无需安装的数据库) 的帮助, 请看下面.
请确保您已经安装 MySQL. 大多数的人应该都已经安装了, 但也许有一些人还没有接触过 MySQL. 那么您可以使用:
- Mysql - https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04
- Percona - https://www.percona.com/doc/percona-server/8.0/installation/apt_repo.html
- Mariadb - https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04
(英文编写者: 建议使用 Linux 服务器, 但如果您使用 Windows, 可以使用以下的链接
- MySQL - https://dev.mysql.com/doc/refman/8.0/en/windows-installation.html
- Percona - 不支持 (因为 Percona 开发者们太聪明了)
- MariabDB - https://mariadb.com/kb/en/installing-mariadb-msi-packages-on-windows/
先确保 database.mode 配置为 "mysql". 然后您需要的信息有:
- Hostname(主机名) - 默认为
localhost
- UserName(用户名) - 默认为
prism
- Password(密码) - 默认为
prism
- Database Name(数据库名称) - 默认为
prism
- Port(端口) - 默认为
3306
修改 <server>/plugins/Prism/
目录中的 config.yml
.
mysql:
hostname: localhost
username: prism
password: prism
databaseName: prism
prefix: prism_ ## 如果您想使用独立的数据库, 可以修改这个.
port: '3306'
useNonStandardSql: true ## 如果您使用 Mariadb, 请修改为 `false`
database:
max-failures-before-wait: 5
actions-per-insert-batch: 300
force-write-queue-on-shutdown: true
如果您是自己架设的 MySQL 服务器, 您应该会知道上面的这些信息如何填写. 如果您使用的是别人架设的 MySQL 服务器 (如共享主机服务), 请让他们提供给您这些信息.
!!重要!! 如果您收到 any_value does not exist
的错误信息, 您很有可能在使用 MariaDB. 请在配置文件中设置 useNonStandardSql: false
.
再次启动您的服务器, 查看控制台中是否有 Prism 无法连接到数据库 的错误信息.
如果您遇到这些问题, 请执行 /prism 调试(debug)
, 它可以在数据库连接失败时工作. 请使用插件之后提供的链接来向我们寻求帮助.
不要在 GitHub 上创建 issue, 我们会直接关闭它的.
如果您担心磁盘空间不足, 或者服务器人数极高, 我们建议关闭 water-flow 和 lava-flow 追踪. 这些事件的发生率十分高,
而且 Bukkit 会在每一个方块坐标上多次调用这些事件. 它们会很快地灌满您的数据库. 一个相对容易的替代办法是使用 /prism 排水(drain)
指令.
但, 即使您关闭了流动事件的追踪, Prism 仍会追踪 lava/water-break 事件, 所以您仍然可以回滚被液体破坏的物品.
这里需要一些技术能力. 如果您不清楚这些建议是干什么的, 请跳过.
不断看到连接池耗竭的错误信息? 这通常不是 Prism 导致的, 而是与数据库通信的速率不够快导致的. 有很多的办法可以解决这个问题. 如果您正在使用远程 MySQL 服务器, 通常会有些缓慢, 因为每次查询服务器都需要通过因特网来通信, 如果是共享 MySQL 托管, 通常性能不是很好.
一些建议:
- 降低连接池等待时间 (pool wait times).
- 增加连接池连接限制数 (pool connection limit), 如果您的远程 MySQL 提供者调整了合适的限制数的话.
- 增加批次发送行为数 (actions per batch), 来让 MySQL 查询在大型变化发生时发送更多的数据, 代价是稍微提高内存占用.
您可以调整数据库连接和通信的设定 - 如果您使用远程托管的 MySQL 服务器, 或者想要提高您本地 MySQL 服务器数据库的性能, 这很有用.
进阶数据库控制可以在一个独立的配置文件 'hikari.properties' 中操作. 您可以在里面进行一些数据库连接的极度调整. 在 这里 了解更多信息.
这些通常不需要调整.
我们的事件数据记录速度默认值设置为适合中型服务器的设定. 如果您想让服务器运行得更好, 可以调整 Prism 来让事件记录更快.
actions-per-insert-batch
代表每次批次插入发送多少个行为. 此功能的唯一限制就是运行内存 (RAM) 和您 MySQL
服务器的 max_allowed_packets 设置. 一般都可以将此数值增加到 5000, 或者更高.
每一次记录器运行的时候, 它会使用批次插入语句来清空队列. 通过将其值从 1000 改为 5000, 来显著地提高清空队列的速度.
在默认设置下, 有着 11 万方块变化的世界需要 19 秒来保存, 但增加了这个值后只需要 5 秒.
queue-empty-tick-delay
决定了记录器每一次检查队列的时间刻(tick)间隔. (20 tick = 1 秒)
降低此数值会提高队列保存的速度. 例如, 在默认设置下的 3 tick, 每秒有约 6 个队列清空操作.
当记录器检查队列时, 它会批次清空整个队列. 不管是通过什么方式, 这些设定只是让它更频繁地检查新的事件行为.
如果可以的话, Prism 会使用下面的一些提供源.
- WorldEdit
Prism 可以使用 WorldEdit 选区.
- DripReporter
提供详细的指标报告, 让您更好地了解服务器的负载. 这是本地报告, 而不是基于网络的.
- Bstats
Prism 会汇报使用数据给 Bstats - 如果您想, 可以关闭此功能. 这是匿名的, 可以帮助我们决定下一步该工作的地方.