数据库准备
在使用 Gitea 前,您需要准备一个数据库。Gitea 支持 PostgreSQL(>=10)、MySQL(>=5.7)、SQLite 和 MSSQL(>=2008R2 SP3)这几种数据库。本页将指导您准备数据库。由于 PostgreSQL 和 MySQL 在生产环境中被广泛使用,因此本文档将仅涵盖这两种数据库。如果您计划使用 SQLite,则可以忽略本章内容。
数据库实例可以与 Gitea 实例在相同机器上(本地数据库),也可以与 Gitea 实例在不同机器上(远程数据库)。
注意:以下所有步骤要求您的选择的数据库引擎已安装在您的系统上。对于远程数据库设置,请在数据库实例上安装服务器应用程序,在 Gitea 服务器上安装客户端程序。客户端程序用于测试 Gitea 服务器与数据库之间的连接,而 Gitea 本身使用 Go 提供的数据库驱动程序完成相同的任务。此外,请确保服务器和客户端使用相同的引擎版本,以使某些引擎功能正常工作。出于安全原因,请使用安全密码保护 root
(MySQL)或 postgres
(PostgreSQL)数据库超级用户。以下步骤假设您在数据库和 Gitea 服务器上都使用 Linux。
MySQL/MariaDB
-
对于远程数据库设置,您需要让 MySQL 监听您的 IP 地址。编辑数据库实例上的
/etc/mysql/my.cnf
文件中的bind-address
选项为:bind-address = 203.0.113.3
-
在数据库实例上,使用
root
用户登录到数据库控制台:mysql -u root -p
按提示输入密码。
-
创建一个将被 Gitea 使用的数据库用户,并使用密码进行身份验证。以下示例中使用了
'gitea'
作为密码。请为您的实例使用一个安全密码。对于本地数据库:
SET old_passwords=0;
CREATE USER 'gitea' IDENTIFIED BY 'gitea';对于远程数据库:
SET old_passwords=0;
CREATE USER 'gitea'@'192.0.2.10' IDENTIFIED BY 'gitea';其中
192.0.2.10
是您的 Gitea 实例的 IP 地址。根据需要替换上述用户名和密码。
-
使用 UTF-8 字符集和排序规则创建数据库。确保使用
**utf8mb4**
字符集,而不是utf8
,因为前者支持 Basic Multilingual Plane 之外的所有 Unicode 字符(包括表情符号)。排序规则根据您预期的内容选择。如果不确定,可以使用unicode_ci
或general_ci
。CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';