Jellyfin在CentOS上的数据库连接配置指南
Jellyfin支持SQLite(默认)、MySQL、PostgreSQL三种数据库类型。其中,SQLite适合单机小规模使用,MySQL/PostgreSQL适合多用户或需要更强大功能的场景。以下是具体配置步骤及注意事项:
安装Jellyfin
通过YUM包管理器安装Jellyfin(需提前添加官方repo):
sudo yum install -y epel-release
wget https://repo.jellyfin.org/releases/server/centos/stable/server/jellyfin-server-10.8.9-1.el7.x86_64.rpm
rpm -Uvh jellyfin-server-10.8.9-1.el7.x86_64.rpm
sudo systemctl enable --now jellyfin
安装数据库软件
sudo yum install -y mysql-server
sudo systemctl enable --now mysqld
sudo yum install -y postgresql-server
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable --now postgresql
创建数据库与用户
CREATE DATABASE jellyfin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'jellyfin'@'localhost' IDENTIFIED BY 'YourStrongPassword';
GRANT ALL PRIVILEGES ON jellyfin.* TO 'jellyfin'@'localhost';
FLUSH PRIVILEGES;
sudo -u postgres psql
CREATE DATABASE jellyfin OWNER jellyfin;
CREATE USER jellyfin WITH PASSWORD 'YourStrongPassword';
GRANT ALL PRIVILEGES ON DATABASE jellyfin TO jellyfin;
\q
Jellyfin的数据库配置文件路径为/etc/jellyfin/config/config.db.json(若文件不存在,首次启动后会自动生成SQLite配置)。
使用文本编辑器(如nano)修改配置:
sudo nano /etc/jellyfin/config/config.db.json
MySQL配置示例:
{
"Database": {
"Engine": "mysql",
"Host": "localhost",
"Port": 3306,
"DatabaseName": "jellyfin",
"Username": "jellyfin",
"Password": "YourStrongPassword"
}
}
PostgreSQL配置示例:
{
"Database": {
"Engine": "postgresql",
"Host": "localhost",
"Port": 5432,
"DatabaseName": "jellyfin",
"Username": "jellyfin",
"Password": "YourStrongPassword"
}
}
SQLite配置(默认):
若无需更换数据库,无需修改此文件,Jellyfin会自动创建/var/lib/jellyfin/database.db。
重启Jellyfin服务:
sudo systemctl restart jellyfin
检查服务状态:
sudo systemctl status jellyfin
若状态显示为active (running),说明配置成功。
查看日志确认数据库连接:
journalctl -u jellyfin -f
日志中应无数据库连接错误(如Unable to connect to database)。
数据库服务未启动
若出现Connection refused错误,检查数据库服务是否运行:
sudo systemctl status mysqld # MySQL
sudo systemctl status postgresql # PostgreSQL
若未运行,启动服务:sudo systemctl start mysqld。
连接字符串错误
确认config.db.json中的Host、Port、DatabaseName、Username、Password与数据库实际配置一致。例如,MySQL默认端口为3306,PostgreSQL为5432。
用户权限不足
若出现Access denied错误,检查数据库用户是否有对应数据库的权限:
SHOW GRANTS FOR 'jellyfin'@'localhost';\du jellyfin(在psql中执行)防火墙拦截
若数据库不在本地(如远程数据库),需开放对应端口:
sudo firewall-cmd --permanent --add-port=3306/tcp # MySQL
sudo firewall-cmd --permanent --add-port=5432/tcp # PostgreSQL
sudo firewall-cmd --reload
shared_buffers参数。sudo cp /etc/jellyfin/config/config.db.json /etc/jellyfin/config/config.db.json.bak。通过以上步骤,即可在CentOS上完成Jellyfin的数据库连接配置。如需进一步优化,可参考Jellyfin官方文档的数据库配置章节。