如何使用 MySQL 在多个设备上同步您的 Kodi 库
已发表: 2022-01-29Kodi 仍然是最强大的媒体中心应用程序之一,它适用于从强大的媒体 PC 到小型 Raspberry Pi 的所有应用程序。 但是如果你家里有多台电视,如果它们都保持同步不是很好吗?
默认情况下,如果您有多台 Kodi 机器,它们将无法相互识别。 您在一台电视上观看的剧集不会在另一台电视上显示为“已观看”。 但是,如果您的卧室 Kodi 盒子知道您在客厅看到了什么,那不是很好吗?反之亦然? 如果您可以停止在客厅看电影,并从您在房子其他地方中断的地方继续观看,会不会很好?
嗯,这是可能的——只需要一些设置。 这是如何做到的。
你需要什么
我们即将进行的同步魔法的核心是 MySQL 数据库。 如果您以前从未使用过,请不要惊慌! 它确实需要一点技术知识,但我们在这里为您提供指导。 如果您密切关注,您应该没有任何问题。
我们要做的是安装一个免费版本的 MySQL 服务器,然后指示所有 Kodi 机器使用该服务器上的数据库作为其库(而不是每台计算机上的单独数据库)。 从那时起,当 Kodi 检查您是否看过特定的电视节目或电影、暂停媒体或设置书签时,它不仅会回答您站在前面的特定媒体中心,但适用于房子里的所有媒体中心。
对于此项目,您将需要以下内容:
- 多个安装了 Kodi 的媒体中心(它们都需要是相同的 Kodi 基本版本——我们将在本指南中使用 v17 “Krypton”)。
- MySQL Community Server 的免费副本 — Kodi wiki 建议使用 5.5 版而不是较新的 5.7 版,因此我们将在本教程中使用该版本。
- 运行 MySQL 服务器的永远在线或几乎永远在线的计算机。
您可以在任何计算机上安装 MySQL 服务器,当您使用媒体中心时,该计算机将始终处于开启状态。 在我们的例子中,我们将在存储电影和电视节目的同一台始终在线的家庭服务器上安装 MySQL——这样,只要 Kodi 可以使用媒体,数据库也可以使用。
第一步:安装 MySQL 服务器
在本教程中,我们将在运行 Windows 10 的媒体服务器上安装 MySQL。我们的安装说明应与任何版本的 Windows 相匹配。 对于其他操作系统,请查阅 MySQL 5.5 手册。
MySQL的安装很简单。 只需下载服务器安装应用程序并运行它。 接受许可协议和“典型”安装。 完成后,确保选中“Launch the MySQL Instance Configuration Wizard”,然后单击 Finish。
MySQL 配置向导将启动并为您提供在详细配置和标准配置之间进行选择的选项。 选择标准配置并单击下一步。
在下一个屏幕上,选中“Install As Windows Service”,将其命名为 MySQL,或者,如果您出于某种目的运行多个 MySQL 服务器,请为其指定一个唯一名称,然后选中“Launch the MySQL Server Automatically”以确保 MySQL服务器在您需要时始终处于开启状态。
在下一个屏幕上,选中修改安全设置,插入新的 root 密码,然后选中从远程计算机启用 root 访问。
单击到最后一个屏幕并按执行,让向导使用您指定的参数设置所有内容。 完成后,继续进行第二步。
第二步:设置你的 MySQL 用户
接下来,是时候在 MySQL 服务器上为您的媒体中心创建一个用户帐户了。 为此,我们需要一些命令行工作。 首先,运行 MySQL 命令行客户端——你应该在你的开始菜单中有一个条目。
控制台打开后,输入您在上一步中创建的密码。 然后您会发现自己在 MySQL 服务器提示符下。
在提示符处,键入以下命令,在每个命令后按 Enter,以在数据库服务器上创建用户:
创建由“kodi”标识的用户“kodi”;
将所有 *.* 授予“kodi”;
刷新特权;
第一个命令的第一部分创建用户,第二部分创建密码。 虽然在这种情况下,相同的登录名/密码通常是一个巨大的安全禁忌,但为了简单起见,我们很乐意使用匹配对。 私人服务器上的 MySQL 数据库可以跟踪您观看的 Dexter 的哪些剧集,这几乎不是高风险的安装。
这就是你现在需要在命令行中做的所有事情——尽管我们建议保持对 MySQL 服务器的命令提示符打开,但是,因为我们将稍后签入并在 Kodi 创建数据库后查看它们我们。
在配置 Kodi 之前,我们还有最后一项任务。 确保端口 3306(MySQL 服务器端口)在您安装 MySQL 的计算机的防火墙上打开。 默认情况下,Windows 安装程序应该自动打开端口,但我们已经看到了它没有打开端口的情况。 打开端口的最简单方法是使用 PowerShell 命令。 在开始菜单中搜索 PowerShell,然后右键单击它并选择“以管理员身份运行”。
然后,运行以下命令并按 Enter:
New-NetFirewallRule -DisplayName "Allow inbound TCP Port 3306 for MySQL" -Direction inbound –LocalPort 3306 -Protocol TCP -Action Allow
如果命令成功,如下图,你应该可以继续了。
第三步:备份您当前的 Kodi 库(可选)
相关:如何将您的 Kodi 艺术品存储在与您的视频相同的文件夹中
默认情况下,Kodi 使用内部 SQLite 数据库。 为了让 Kodi 在您的家庭网络中进行有效通信,我们需要指示它使用外部 MySQL 数据库。 然而,在我们开始这一步之前,您需要做出一个执行决定:您可以备份当前库并在以后恢复它(有时可能很挑剔),或者您可以从一个新库重新开始(这很简单,但需要您重新设置节目的观看状态,如果您不在本地存储,可能会重新选择您的作品)。
如果您想备份您当前的图书馆,您可以在 Kodi 中进行。 仅在一台机器上执行此操作 - 选择具有最新库的机器。 打开 Kodi 并前往设置 > 媒体设置 > 导出库。 (如果您没有看到这些选项,请确保您的菜单在 Kodi 中设置为“高级”或“专家”。)

您可以将库导出为单个文件或单独的文件。 单个文件将允许您将备份放在一个位置,而多个文件会将额外的 JPG 和 NFO 文件分散到您的媒体文件夹中 - 这更可靠,但相当混乱。 选择您想要的任何选项。
备份库后,继续下一步。
第四步:配置 Kodi 以使用您的新 MySQL 服务器
一旦您备份了库(或者选择不担心它并从头开始),您就可以将 Kodi 指向您的 MySQL 服务器。 您需要在每台运行 Kodi 的机器上执行此步骤,但我们建议先在一台机器上进行设置——如果您选择这样做,可能是您备份库的同一台机器。
为了将 Kodi 指向 MySQL,我们需要编辑 Kodi 的 advancedsettings.xml 文件。 默认情况下,此文件不存在(尽管在安装过程中,Kodi 可能会为您创建一个来处理特定的配置问题)。 如果 advancedsettings.xml 文件存在,它将位于以下位置,具体取决于您的操作系统:
- Windows : C:\Users\[用户名]\AppData\Roaming\Kodi\userdata
- Linux 和 Kodi 的其他 Live 版本:$HOME/.kodi/userdata
- macOS :/Users/[用户名]/Library/Application Support/Kodi/userdata
签入那个文件夹。 那里有一个 advancedsettings.xml 文件吗? 是的? 打开它。 不? 您需要打开一个文本编辑器并创建一个。 无论您是编辑现有的还是创建新的,请将以下文本剪切并粘贴到文件中(注意:如果您的 advancedsettings.xml 文件中已经有一些条目,请保留这些条目并将这些值放入正确的部分):
<高级设置>
<视频数据库>
<type>mysql</type>
<主机>192.168.1.10</主机>
<端口>3306</端口>
<user>科迪</user>
<pass>科迪</pass>
</视频数据库><音乐数据库>
<type>mysql</type>
<主机>192.168.1.10</主机>
<端口>3306</端口>
<user>科迪</user>
<pass>科迪</pass>
</音乐数据库>
</高级设置>
编辑上面的文本以反映 LAN 上服务器的 IP 地址和 MySQL 数据库的用户名/密码(在我们的示例中,它只是 kodi/kodi)。 这个基本设置应该让您的视频和音乐库同步,但您也可以同步 Kodi 的其他部分,以及使用名称标签同步多个配置文件(如果您使用它们)。
一旦您的 advancedsettings.xml 文件准备就绪,请在该机器上打开 Kodi。 您需要导入您的库(从设置 > 媒体设置 > 导入库),或者重新扫描您的源以从头开始填充 MySQL 数据库。 现在就这样做。
完成后,您的库已恢复到位,您可以跳转到 MySQL 命令提示符并检查以确保 Kodi 创建并填充了数据库。 在 mySQL 注释提示符处,运行:
显示数据库;
它将输出当前在 MySQL 服务器上的所有数据库。 您至少应该看到以下数据库: information_schema
、 mysql
和performance_scheme
,因为它们是 MySQL 安装本身的一部分。 Kodi 的默认数据库名称是myvideos107
和mymusic60
(在我们的示例中,我们没有使用音乐数据库,所以只有我们的视频数据库出现在列表中)。
如果您需要从 MySQL 服务器中删除数据库,可以使用以下命令:
删除数据库数据库名称;
空数据库几乎不占用任何空间,不会对同步系统的性能产生负面影响,但保持整洁是件好事。
如果您的数据库在那里,这是一个好的开始,但值得执行一个简单的检查以查看 Kodi 是否正确填充数据库。 从 MySQL 命令提示符运行以下命令(将databasename
替换为您的视频数据库的名称):
SELECT COUNT(*) from databasename.movie;
从 databasename.tvshow 中选择 COUNT(*);
每个查询将分别返回包含在您的库中的电影和电视节目的总数(根据 MySQL 数据库)。 如您所见,在我们的例子中,它正在识别我们的图书馆,其中包含 182 部电影和 43 部电视节目:
如果条目数为零,则说明沿线某处存在问题。 以下是常见错误的快速故障排除清单:
- 在启动 Kodi 并重新填充库之前,您是否将 advancedsettings.xml 文件复制到您的机器上?
- 您是否使用 GRANT ALL 命令授予 Kodi 帐户访问 MySQL 服务器的权限?
- 您是否在 MySQL 主机的防火墙上打开了 3306 端口?
- 当您删除 advancedsettings.xml 文件并恢复到本地数据库时,您的源是否有效且可扫描? 如果没有,您将需要独立于 MySQL 问题对源进行故障排除。
如果一切看起来都不错,并且您的SELECT COUNT
查询成功,则意味着您已准备好开始利用跨媒体中心同步。
第五步:为您的其他 Kodi 机器重复第四步
困难的部分结束了! 现在您只需转到其他每台 Kodi 机器并将相同的文本放入您在第四步中所做的 advancedsettings.xml 文件中。 一旦你这样做(并在该机器上重新启动 Kodi),它应该立即从 MySQL 服务器获取你的库信息(而不是你需要自己重新填充库)。
在某些设备上,例如运行 LibreELEC 的 Raspberry Pis,您需要进入网络设置并确保“在启动 Kodi 之前等待网络”已打开,这样才能正常工作。
此外,如果您的视频在需要密码的共享上,并且在新机器上设置您的 advancedsettings.xml 后出现错误,您可能必须转到“文件”视图,单击“添加视频”,并访问共享上的文件夹,以便 Kodi 提示您输入凭据。 然后,您可以单击“取消”或将源添加为包含“无”类型的媒体。
从那里,尝试在一个盒子上观看视频。 您应该会发现,完成后,它也会在您的其他 Kodi 设备上显示为“已观看”! 您甚至可以在一台机器上停止视频,然后只需选择它在另一台机器上播放即可从中断处继续。 享受新的全屋图书馆同步!
图片来源:FLIRC Kodi 版 Raspberry Pi 外壳