Achtung

Dieser Beitrag ist schon sehr alt, und die Infos hier sind sicherlich hoffnungslos veraltet…

mythtv: mythtv-database No database selected

Professor Hastig
Ubuntu
ubuntuusers
Autor:in

produnis

Veröffentlichungsdatum

27. Mai 2014

Beim Aktualisieren von mythtv unter Ubuntu (12.04) bekomme ich wiederholt folgenden fehler:

> ERROR 1046 (3D000) at line 22: No database selected
> dpkg: error processing mythtv-database (--configure):

Ich musste lange suchen, bis ich folgenden Hinweis gefunden habe. Scheinbar handelt es sich um einen Package-Fehler im Ubuntu-PPA. Das “Einfachste” ist, die Datei /var/lib/dpkg/info/mythtv-database.postinst mit einem Editor zu öffnen, und folgende Abschnitte an die eigenen Einstellungen (Datenbank, User, Passwort) anzupassen [im Editor suche ich nach ‘case "$1" in’, das ist bei mir ab Zeile 74]:

case "$1" in
configure)
. /usr/share/debconf/confmodule

db_get mythtv/mysql_mythtv_dbname
database="HERE"

db_get mythtv/mysql_mythtv_user
mythtv_username="HERE"

db_get mythtv/mysql_mythtv_password
mythtv_password="HERE"

db_get mythtv/mysql_admin_user
admin_username="HERE"

if [ "$admin_username" = "debian-sys-maint" ]; then
SECURITY_INFO="--defaults-file=/etc/mysql/debian.cnf"
else
db_get mythtv/mysql_host
hostname="HERE"

db_get mythtv/mysql_admin_password
admin_password="HERE"

if [ "$admin_password" != "" ]; then
admin_password="-p$admin_password"
fi
SECURITY_INFO="--host=$hostname --user=$admin_username $admin_password"
fi

Jetzt läuft das sudo apt-get upgrade problemlos durch.

Jedoch wird durch den vorherigen Fehler mein MythWeb-Plugin zerschossen, also besser gesagt, ich sehe nur eine leere weiße Seite und erhalte im error-log

Call to a member function query_col() on a non-object in /usr/share/mythtv/mythweb/includes/utils.php

In diesem Fall müssen in der Apache-Configdatei für mythweb (bei mir unter /etc/apache2/sites-available/mythweb.conf) die Einträge “setenv” neu eingetragen werden (ich hab mir eine .bak-Datei erzeugt, die ich einfach wieder zurückkopieren kann) :

            setenv db_server        "localhost"
            setenv db_name          "mythconverg"
            setenv db_login         "mythtv"
            setenv db_password      "mythtv"

Script

Ich habe mir ein kleines Script geschrieben, welches diese Arbeit abnimmt.

touch fixmythweb.sh
chmod +x fixmythweb.sh
nano fixmythweb.sh








#!/bin/bash
#sudo sed -i 's/FIND/REPLACE/g' DATEI
#-------------------------------------
sudo sed -i 's/database=\"\$RET\"/database=\"mythconverg\"/g' /var/lib/dpkg/info/mythtv-database.postinst
sudo sed -i 's/mythtv_username=\"\$RET\"/mythtv_username=\"mythtv\"/g' /var/lib/dpkg/info/mythtv-database.postinst
sudo sed -i 's/mythtv_password=\"\$RET\"/mythtv_password=\"SECRET\"/g' /var/lib/dpkg/info/mythtv-database.postinst
sudo sed -i 's/admin_username=\"\$RET\"/admin_username=\"root\"/g' /var/lib/dpkg/info/mythtv-database.postinst
sudo sed -i 's/hostname=\"\$RET\"/hostname=\"localhost\"/g' /var/lib/dpkg/info/mythtv-database.postinst
sudo sed -i 's/admin_password=\"\$RET\"/admin_password=\"SUPER_SECRET\"/g' /var/lib/dpkg/info/mythtv-database.postinst
#
sudo cp /etc/apache2/sites-available/mythweb.conf.bak /etc/apache2/sites-available/mythweb.conf
#
sudo apache2ctl graceful
#
sudo apt-get update && sudo apt-get upgrade