Eine erfahrene Person zeigt Ihnen, wie Sie ein professionelles und standardisiertes MySQL-Startskript entwickeln

Eine erfahrene Person zeigt Ihnen, wie Sie ein professionelles und standardisiertes MySQL-Startskript entwickeln

Jeder qualifizierte Linux-Betriebs- und Wartungsmitarbeiter sollte mit der Shell-Skriptprogrammierung vertraut sein oder sich damit auskennen, da die Shell-Skriptsprache die einfachste Sprache aller Programmiersprachen ist. Wenn Shell-Skripte nicht gut sind, kann dies bedeuten, dass der Betriebs- und Wartungsweg zu Ende sein kann, bevor er überhaupt begonnen hat. ——Ehemaliger Lehrer

#!/bin/bash
# chkconfig: 2345 64 36 #Automatischen Systemstart konfigurieren# Beschreibung: Eine sehr schnelle und zuverlässige SQL-Datenbank-Engine.
##############################################################
# Dateiname: mysqld
# Version: V1.0
# Autor: oldboy
# Organisation: www.oldboyedu.com
# Erstellt am: 2018-06-05 08:58:19
##############################################################
#Stellen Sie die Systemfunktionsbibliothek vor. /etc/init.d/functions

#Grundlegende Pfaddefinition basedir='/application/mysql'
bindir='/Anwendung/mysql/bin'
lockdir='/var/lock/subsys'                    
lock_file_path="$lockdir/mysql"
mysqld_pid_file_path='$basedir/data/`uname -n`.pid'

#Erfolgsmeldungsfunktion log_success_msg(){
  #action ist eine spezielle Eingabeaufforderungsfunktion, $@ sind alle Parameter.
  Aktion "ERFOLGREICH! $@" /bin/true
}
#Fehleraufforderungsfunktion log_failure_msg(){
  Aktion "FEHLER! $@" /bin/false
 }
 
#mysql Startfunktion start(){
  echo $"MySQL wird gestartet"
  #Testen Sie, ob mysqld_safe ausführbar ist, wenn test -x $bindir/mysqld_safe
  Dann
    #Hintergrundausführung startet MySQL-Befehl $bindir/mysqld_safe &>/dev/null &
    #Holen Sie sich den Rückgabewert retval=$?
    # Überprüfen Sie, ob der Rückgabewert 0 ist
    wenn [ $retval -eq 0 ]
    Dann
      #Rufen Sie die Erfolgsaufforderungsfunktion auf.
      log_success_msg "MySQL-Start"
      if test -w "$lockdir" #Beurteilen Sie, ob das Sperrverzeichnis beschreibbar ist.
      Dann
        touch "$lock_file_path" #Erstellen Sie eine Sperrdatei.
      fi
      return $retval #Die Angabe eines Rückgabewerts ist eine professionelle Geste.
    anders
      log_failure_msg "MySQL-Startup" #Eingabeaufforderung für fehlgeschlagenen Funktionsaufruf.
      Rückgabewert $retval
    fi
  anders
    log_failure_msg "MySQL-Server konnte nicht gefunden werden ($bindir/mysqld_safe)"
  fi
}
#Stoppen Sie die MySQL-Funktion.
stoppen(){
  #Beurteilen Sie, ob die MySQL-PID-Dateigröße 0 ist.
  wenn test -s "$mysqld_pid_file_path"
  Dann
    #PID-Datei lesen
    mysqld_pid=`cat "$mysqld_pid_Dateipfad"`
    #Beurteilen Sie, ob der der MySQL-PID entsprechende Prozess existiert.
    wenn (kill -0 $mysqld_pid 2>/dev/null)
    Dann
      echo $"MySQL wird heruntergefahren"
      kill $mysqld_pid #Stoppen Sie den MySQL-Befehl.
      retval=$?
      wenn [ $retval -eq 0 ]
      Dann
        log_success_msg "MySQL Stop" #Rufen Sie die Stop-Success-Funktion auf.
        wenn test -f "$lock_file_path"
        Dann
          rm -f "$lock_file_path" #Löschen Sie die Sperrdatei.
        fi
        Rückgabewert $retval
      anders
        log_failure_msg "MySQL-Stopp."
        Rückgabewert $retval
      fi
    anders
      log_failure_msg "MySQL-Serverprozess mysqld_pid läuft nicht!"
      rm "$mysqld_pid_dateipfad"
    fi 
  anders
    log_failure_msg "Die PID-Datei des MySQL-Servers ist null oder existiert nicht!"
  fi
}
#Empfangen Sie die übergebenen Parameter und führen Sie die entsprechende Funktion aus.
Fall "$1" in
  Start)
    Start
    retval=$?
    ;;
  stoppen)
    stoppen
    retval=$?
    ;;
  Neustart)
    stoppen
    Schlaf 2 #Das ist sehr wichtig, ruhen Sie sich aus.
    Start
    retval=$?
    ;;
  *)
    echo $"Verwendung:$0 {start|stop|restart}"
    Ausfahrt 2
esac
exit $retval #Nach der Ausführung des Skripts ist es professioneller, einen Rückgabewert zu haben.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Zusammenfassung der MySQL-Nutzungsspezifikationen
  • Äußerst detaillierte Freigabe der MySQL-Nutzungsspezifikation
  • Zusammenfassung der MySQL-Datenbanknutzungsspezifikationen
  • Zusammenfassung der MySQL-Entwicklungsstandards und -Nutzungskenntnisse
  • MySQL-Datenbank-Entwicklungsspezifikationen [empfohlen]
  • Benennungsstandards und Konventionen für MySQL-Datenbanken
  • Detaillierte Erläuterung der MySQL-Tabellenerstellung und der Indexnutzungsspezifikationen
  • Benennung und Designspezifikationen für MySQL-Datenbanken
  • Professionelle MySQL-Entwicklungsdesignspezifikationen und SQL-Schreibspezifikationen

<<:  jQuery implementiert verschachtelte Tab-Funktion

>>:  Verwendung von relativen und absoluten Pfaden unter Linux

Artikel empfehlen

Problem mit Zeitzonenfehler im Docker-Container

Inhaltsverzeichnis Hintergrund Frage Problemanaly...

Zeichnen Sie ein Herz mit CSS3

Ergebnisse erzielenAnforderungen/Funktionalität: ...

JavaScript+HTML zur Implementierung eines Studenteninformationsmanagementsystems

Inhaltsverzeichnis 1. Einleitung 2. Rendern 3. Co...

JavaScript verwendet Promise zur Verarbeitung mehrerer wiederholter Anfragen

1. Warum diesen Artikel schreiben? Sie haben sich...

Vue-CLI - Aufzeichnung der Schritte zur mehrseitigen Verzeichnisverpackung

Seitenverzeichnisstruktur Beachten Sie, dass Sie ...

Grundlagen der HTML-Bearbeitung (ein Muss für Anfänger)

Öffnen Sie DREAMWEAVER und erstellen Sie ein neue...

JavaScript imitiert den Jingdong-Lupeneffekt

In diesem Artikel wird der spezifische Code für J...

Zusammenfassung und Praxis des Javascript-Prototyp-Kettendiagramms

Inhaltsverzeichnis Prototypenkette Wir können ein...

Detaillierte Erklärung zur Verwendung der Vue-Nummernschild-Eingabekomponente

Eine einfache Nummernschild-Eingabekomponente (vu...

Eine schnelle Lösung für das Problem der PC- und Mobilanpassung

Beim Erstellen einer Webseite müssen wir normaler...

Beispiel einer JSON-Ausgabe im HTML-Format (Testschnittstelle)

Um die JSON-Daten in einem schönen eingerückten F...