Ein einfaches Script, um das Subsonic-MySQL-Problem zu beheben

Habt auch ihr das Problem, dass eure Subsonic-Mediathek nach einem Mediensuchlauf immer leer ist? Keine Sorge, ihr seid nicht allein. Seitdem ich meinen Subsonic-Server an eine MySQL-Datenbank angebunden habe, wurde nach jedem Suchlauf das Present-Flag auf 0 gesetzt und meine Mediathek war komplett leer. Das war natürlich ziemlich frustrierend.

Aber zum Glück habe ich eine Lösung gefunden! Ich habe ein kleines Bash-Script geschrieben, das das Problem behebt. Lasst mich euch zeigen, wie es funktioniert und wie ihr es nutzen könnt, um eure Subsonic-Mediathek wiederherzustellen.

Zuerst einmal, hier ist das Script:

#!/bin/bash
##########################################################################
#           .--.
#          |o_o |
#          |:_/ |
#         //   \ \
#        (|     | )
#        /'\_   _/`\
#        \___)=(___/
#    (c) Patrick Asmus
#        support@media-techport.de
#        https://www.media-techport.de
##########################################################################
# Letzte Anpassung: 07.05.2023
# Version 0.0.2
##########################################################################
# mysql-subsonic-updater.sh
##########################################################################

# MySQL-Verbindungsinformationen
DB_USER="subsonic"
DB_PASSWORD="password"
DB_HOST="mysql-host"
DB_NAME="subsonic"

# Befehl für die Aktualisierung der Datenbank
MYSQL_COMMAND="UPDATE media_file SET present = 1 WHERE present = 0"

# MySQL-Befehl ausführen
mysql -u $DB_USER -p$DB_PASSWORD -h $DB_HOST -D $DB_NAME -e "$MYSQL_COMMAND"

Jetzt lasst mich euch zeigen, was ihr tun müsst, um dieses Script nutzen zu können.

Schritt 1: Öffnet einen Texteditor auf eurem Subsonic-Server. Ihr könnt jeden Texteditor eurer Wahl verwenden.

Schritt 2: Kopiert das obige Script und fügt es in den Texteditor ein.

Schritt 3: Passt die MySQL-Verbindungsinformationen an eure eigenen Daten an. Ihr müsst die folgenden Variablen ändern:

  • DB_USER: Der Benutzername für eure MySQL-Datenbank.
  • DB_PASSWORD: Das Passwort für den MySQL-Benutzer.
  • DB_HOST: Der Hostname oder die IP-Adresse eures MySQL-Servers.
  • DB_NAME: Der Name der Subsonic-Datenbank.

Stellt sicher, dass ihr alle Informationen korrekt eingebt, da das Script sonst nicht funktioniert.

Wichtig: Ein Kennwort in einem Script zu speichern kann aus sicherheitstechnischen Aspekt gefährlich sein!

Die Bash.

Schritt 4: Speichert das Script unter einem aussagekräftigen Namen, zum Beispiel “mysql-subsonic-updater.sh”.

Schritt 5: Öffnet ein Terminalfenster auf eurem Subsonic-Server und navigiert zum Speicherort des Scripts.

Schritt 6: Führt das Script aus, indem ihr den folgenden Befehl ausführt:

./mysql-subsonic-updater.sh

Das Script wird nun die MySQL-Datenbankverbindung herstellen und den Befehl UPDATE media_file SET present = 1 WHERE present = 0 ausführen, um das Present-Flag aller Medien mit dem Wert 0 auf 1 zu setzen.

Nachdem das Script erfolgreich ausgeführt wurde, sollten nun wieder all eure Titel und Alben wieder in der Mediathek angezeigt werden.

Das war’s! Ihr habt erfolgreich das Script verwendet, um das Subsonic-MySQL-Problem zu beheben. Ab jetzt müsst ihr euch keine Sorgen mehr machen, dass eure Mediathek nach einem Mediensuchlauf leer ist.

Optional: Zusätzlich könnt ihr das ganze anhand eines Cronjobs automatisiert ausführen lassen. Da ich meinen Suchlauf einmal alle zwei Wochen automatisch machen lasse, macht das bei mir auf jeden Fall Sinn.

@hourly /home/scripts/mysql/mysql-subsonic-updater.sh > /dev/null 2>&1

Ich hoffe, dieser Blogbeitrag war hilfreich für euch. Wenn ihr noch Fragen habt oder weitere Unterstützung benötigt, stehe ich euch gerne zur Verfügung.

Bis zum nächsten Mal und viel Spaß mit eurer vollständigen Subsonic-Mediathek!

Danke fürs Teilen!