Fehlerbehandlung für MySQL Script

Dieses Thema im Forum "SQL und Datenbanken" wurde erstellt von Till, 05.08.2006.

  1. Till

    Till Grünschnabel

    Dabei seit:
    02.08.2006
    Beiträge:
    7
    Zustimmungen:
    0
    Hallo Community,
    Super Forum hier !! Habe schon viele hilfreiche Threads gefunden :)

    Nun zu meiner Frage/Problem:
    Ich habe mir ein kleines script gebaut, was mir eine Datenbank erstellt und diese anschließend mit Tabellen befüllt.


    Erstellen der Datenbank:
    Code:
    /usr/bin/mysqladmin create $SQL_DB --user=$SQL_USER --password=$SQL_PW
    Erzeugen der Tabellen:
    Code:
    mysql --user=$SQL_USER --password=$SQL_PW $SQL_DB < /usr/src/sql/structure.sql
    Diese beiden machen ihren Job super.
    Aber, wenn das script zum 2. Mal läuft, kommt es ja zu einem Fehler, da die Datenbank ja schon besteht!

    Wie kann ich denn diesen Fehler abfangen?
    Vorher abfragen, ob die Datenbank schon existiert?
    Oder am besten den Fehler: "CREATE DATABASE failed; error: 'Can't... auswerten?

    Das ist jetzt mein Problem (abfangen)
    Wie fang ich den Fehler ab?
    Ich bin noch recht frisch was Shell-Programmierung betrifft.
    Aber irgendwann muss man ja mal anfangen.

    Gruß
    Till
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. grey

    grey -=[GHOST]=-

    Dabei seit:
    28.07.2006
    Beiträge:
    303
    Zustimmungen:
    0
    Ich würde die Existenz der DB zuerst abfragen. Wenn die DB nicht existiert eine neue erstellen.
    Code:
    #!/bin/bash
    
    if [ !`mysqlshow -u $SQL_USER -p'$SQL_PW' $DB_NAME > /dev/null` ]; then
      echo "DB_CREATE"
    else
      echo "!DB_CREATE"
    fi
    Wahrscheinlich geht das ganze auch noch schöner, aber da ich selbst Neuling im Bereich des Shellscriptings bin, bin ich ja schon froh, daß es funktioniert ... ;)

    Bei der Table-Struktur könntest du direkt im SQL-Syntax eine Prüfung einbauen
    Code:
    CREATE TABLE [COLOR="red"]IF NOT EXISTS[/COLOR] $TABLE_NAME (
      `user_uid` varchar(255) NOT NULL default '',
      `user_pass` varchar(32) NOT NULL default '',
      PRIMARY KEY  (`user_uid`)
    ) TYPE=MyISAM;
     
  4. #3 Wolfgang, 05.08.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Ich habe diesen Thread mal hier her geschoben, da es hier mehr um MySQL geht, als um die Shell.

    IMHO gibt es aber das SQL-Statement CREATE DATABASE IF NOT EXISTS database;.

    Gruß Wolfgang
     
  5. Till

    Till Grünschnabel

    Dabei seit:
    02.08.2006
    Beiträge:
    7
    Zustimmungen:
    0
    @grey

    DANKE!

    Hat zuerst nicht so gewollt.
    Nachdem ich aber folgendes gemacht habe ging es... fast:
    Code:
    if [ !`mysqlshow --user=$SQL_USER --password=$SQL_PW $DB_NAME > /dev/null` ]; then
      echo "DB_CREATE"
    else
      echo "!DB_CREATE"
    fi
    Wenn die db schon existiert verzweigt er nicht nach !DB_CREATE....?


    @Wolfgang:
    Ging schon mehr um die shell.
    Ich möchte das innerhalb der Shell lösen damit ich verzweigen kann.
     
  6. grey

    grey -=[GHOST]=-

    Dabei seit:
    28.07.2006
    Beiträge:
    303
    Zustimmungen:
    0
    Stimmt ... Schande über mich ... :(
    Man sollte doch verschiedene Ausdrücke zum testen nehmen (wieder was gelernt)

    Hier die Zeilen, die bei mir funktionieren
    Code:
    mysqlshow -u $DB_USR -p$DB_PWD $DB_NAM > /dev/null 2>&1
    if [ $? -eq 1 ]; then
    Ich hab es auch direkt in der if-Anweisung versucht, aber da hab ich es nicht hinbekommen. Egal welche Umleitung von stdout und stderr ich versucht habe. Entweder gab es bei existierender DB einen Fehler und bei nicht existenter DB keinen oder umgekehrt. :think:
     
Thema:

Fehlerbehandlung für MySQL Script

Die Seite wird geladen...

Fehlerbehandlung für MySQL Script - Ähnliche Themen

  1. Fehlerbehandlung unter ftp

    Fehlerbehandlung unter ftp: Hallo und guten Morgen Gleich zur Frage: Wie kann ich unter ftp Fehler handhaben? Kann ioch Fehlermeldungen irgendwie abfangen und in ein...
  2. SAMBA für Windows10 Domäne einrichten

    SAMBA für Windows10 Domäne einrichten: Hallo, ich habe letztes Wochenende verzweifelt versucht, Samba auf meinem Server einzurichten, daher versuche ich aktuell meinen Fehler zu...
  3. Empfehlung für Server Distribution

    Empfehlung für Server Distribution: Hallo, ich habe hier zu Hause einen kleinen Heimserver, auf welchem ich ein paar Daten für den Zugriff im Haus, einen kleinen Web Service für...
  4. Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten

    Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten: Hallo, ich habe 2 Problemchen. Ich kann nichts mehr installieren. Ich brauche aber unbedingt ein Brenn-Programm. Ein schönen Partitionierer usw....
  5. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...