如何使用 MySQL 在多個設備上同步您的 Kodi 庫

已發表: 2022-01-29

Kodi 仍然是最強大的媒體中心應用程序之一,它適用於從強大的媒體 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_schemamysqlperformance_scheme ,因為它們是 MySQL 安裝本身的一部分。 Kodi 的默認數據庫名稱是myvideos107mymusic60 (在我們的示例中,我們沒有使用音樂數據庫,所以只有我們的視頻數據庫出現在列表中)。

如果您需要從 MySQL 服務器中刪除數據庫,可以使用以下命令:

 刪除數據庫數據庫名稱;

空數據庫幾乎不佔用任何空間,不會對同步系統的性能產生負面影響,但保持整潔是件好事。

如果您的數據庫在那裡,這是一個好的開始,但值得執行一個簡單的檢查以查看 Kodi 是否正確填充數據庫。 從 MySQL 命令提示符運行以下命令(將databasename替換為您的視頻數據庫的名稱):

 SELECT COUNT(*) from databasename.movi​​e;
 從 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 外殼