Heim  >  Artikel  >  Datenbank  >  Erfahren Sie, wie Sie einen der MySQL-Dienste starten und stoppen

Erfahren Sie, wie Sie einen der MySQL-Dienste starten und stoppen

Y2J
Y2JOriginal
2017-05-23 14:42:092753Durchsuche

Bevor wir besprechen, wie der MySQL-Server gestartet wird, überlegen wir uns, unter welchem ​​Benutzer der MySQL-Server ausgeführt werden soll. Der Server kann manuell oder automatisch gestartet werden. Wenn Sie es manuell starten, startet der Server als der Benutzer, mit dem Sie sich bei Unix anmelden (Linux), d. h. wenn Sie sich mit paul bei Unix anmelden und den Server starten, läuft er mit paul; wenn Sie mit paul zu root wechseln den su-Befehl. Starten Sie dann den Server, sodass er als Root ausgeführt wird. In den meisten Fällen möchten Sie den Server jedoch wahrscheinlich nicht manuell starten. Höchstwahrscheinlich werden Sie dafür sorgen, dass der MySQL-Server beim Systemstart automatisch startet, als Teil des Standard-Boot-Vorgangs, der unter Unix durchgeführt wird durch den Unix-Benutzer root des Systems, und alle Prozesse, die innerhalb des Prozesses ausgeführt werden, werden mit Root-Rechten ausgeführt.
Sie sollten beim Startvorgang des MySQL-Servers zwei Ziele im Auge behalten:

Sie möchten, dass der Server als Nicht-Root-Benutzer ausgeführt wird. Im Allgemeinen möchten Sie die Möglichkeiten jedes laufenden Prozesses einschränken, es sei denn, es sind wirklich Root-Rechte erforderlich, was bei MySQL nicht der Fall ist.

Sie möchten, dass der Server immer unter demselben Benutzer ausgeführt wird. Es ist sehr unpraktisch, den Server zu anderen Zeiten als anderen Benutzer zu verwenden. Dies führt dazu, dass Dateien und Verzeichnisse unterschiedliche Attribute haben Das Datenverzeichnis wird erstellt und kann dazu führen, dass der Server nicht auf Datenbanken oder Tabellen zugreifen kann, je nachdem, als welcher Benutzer Sie ausgeführt werden. Wenn Sie den Server als denselben Benutzer ausführen, können Sie dieses Problem vermeiden.

Um den Server als normaler unprivilegierter Benutzer auszuführen, befolgen Sie diese Schritte:

Wählen Sie einen Benutzer aus, um den Server als jeden beliebigen Benutzer auszuführen. Konzeptionell klarer ist es jedoch, einen separaten Benutzer für MySQL-Operationen zu erstellen. Sie können auch eine Benutzergruppe speziell für MySQL auswählen. Dieser Artikel verwendet mysql adm und mysqlgrp als Benutzernamen bzw. Benutzergruppennamen.

Wenn Sie MySQL unter Ihrem eigenen Konto installiert haben und keine besonderen Administratorrechte auf dem System haben, können Sie den Server unter Ihrer eigenen Benutzer-ID betreiben. Ersetzen Sie in diesem Fall mysqladm und mysqlgrp durch Ihren eigenen Anmeldenamen und Ihre eigene Benutzergruppe.

Wenn Sie MySQL unter RedHat Linux mit einer RPM-Datei installieren, erstellt die Installation automatisch ein Konto mit dem Namen mysql und verwendet dieses Konto als Ersatz für mysqladm.

Erstellen Sie bei Bedarf ein Serverkonto mit dem normalen Benutzererstellungsprozess des Systems. Dazu müssen Sie root sein.
Wenn der Server läuft, stoppen Sie ihn.

Ändern Sie den Besitz des Datenverzeichnisses und aller Unterverzeichnisse und Dateien, sodass der mysqladm-Benutzer sie besitzt. Wenn das Datenverzeichnis beispielsweise /usr/local/var ist, können Sie den Besitzer von mysqladm wie folgt festlegen (Sie müssen diese Befehle als Root ausführen):

#cd /usr/local/var
#chown -R mysqladm.mysqlgrp

Ändern Sie die Berechtigungen des Datenverzeichnisses und aller Unterverzeichnisse und Dateien, sodass nur der mysqladm-Benutzer darauf zugreifen kann. Wenn das Datenverzeichnis /usr/local/var ist, können Sie alles festlegen, was mysqladm gehört:

# cd /usr/local/var
# chmod -R go- rwx
Achten Sie beim Festlegen des Eigentümers und Modus des Datenverzeichnisses und seines Inhalts auf symbolische Links. Sie müssen ihnen folgen und den Besitz und Modus der Dateien oder Verzeichnisse ändern, auf die sie verweisen. Dies kann etwas problematisch sein, wenn das Verzeichnis, in dem sich die Verbindungsdateien befinden, an einem Ort liegt, der Ihnen nicht gehört, und Sie möglicherweise Root sein müssen.

Nachdem Sie den oben genannten Vorgang abgeschlossen haben, sollten Sie sicherstellen, dass Sie den Server immer starten, während Sie als mysqladm oder root angemeldet sind. Geben Sie im letzteren Fall unbedingt die Option --user=mysqladm an, um den Server zu aktivieren um seine Benutzer-ID auf mysqladm umzustellen (gilt auch für den Systemstartvorgang).

Die Option --user wurde in MySQL 3.22 eingeführt. Wenn Sie eine ältere Version haben, können Sie den Befehl su verwenden, um das System anzuweisen, den Server unter einem bestimmten Benutzer auszuführen, wenn er als Root ausgeführt wird.



So starten Sie den Server

Nachdem wir das Konto ermittelt haben, mit dem der Server ausgeführt wird, können Sie auswählen, wie Sie den Serverstart veranlassen möchten. Sie können es manuell über die Befehlszeile oder automatisch während des Systemstarts ausführen. Es gibt drei Hauptmethoden zum Starten des Servers:

Rufen Sie mysqld direkt auf.

Dies ist möglicherweise die am wenigsten häufig verwendete Methode und es wird empfohlen, sie nicht häufiger zu verwenden. Daher wird sie in diesem Artikel nicht im Detail vorgestellt.

Rufen Sie das Skript „safe_mysqld“ auf.

safe_mysqld versucht, den Speicherort der Serverprogramm- und Datenverzeichnisse zu ermitteln. Anschließend wird der Server mit Optionen aufgerufen, die diese Werte widerspiegeln. safe_mysqld verschiebt das Standardfehlergerät vom Server in eine Fehlerdatei im Datenverzeichnis, sodass es eine Aufzeichnung davon gibt. Nach dem Starten des Servers überwacht safe_mysqld diesen auch und startet ihn neu, wenn er ausfällt. safe_mysqld wird häufig auf Unix-Systemen im BSD-Stil verwendet.

Wenn Sie sqfe_mysqld als Root oder während des Systemstarts starten, ist das Fehlerprotokoll Eigentum von Root, was zu einem Fehler „Berechtigung verweigert“ führen kann, wenn Sie später versuchen, safe_mysqld als unprivilegierter Benutzer aufzurufen. Löschen Sehen Sie sich das Fehlerprotokoll an und versuchen Sie es erneut.

Rufen Sie das mysql.server-Skript auf.

Dieses Skript startet den Server über „safe_mysqld.mysql.server“, der dazu gedacht ist, System V auf Systemen zu starten und zu stoppen, die mehrere Variablen enthalten, die beim Betreten oder Beenden a gegeben Das Skriptverzeichnis, das beim Ausführen des Levels verwendet wird. Es kann einen Start- oder stop-Parameterpunkt verwenden, um anzugeben, ob Sie den Server starten oder stoppen möchten.
Das Skript „safe_mysqld“ wird im Verzeichnis „bin“ des MySQL-Installationsverzeichnisses installiert oder befindet sich im Verzeichnis „scripts“ der MySQL-Quellcodeverteilung. Das mysql.server-Skript wird im Verzeichnis share/mysqld im MySQL-Installationsverzeichnis installiert oder befindet sich im Verzeichnis support_
files der MySQL-Quellcodeverteilung. Wenn Sie sie verwenden möchten, müssen Sie sie in das entsprechende Verzeichnis kopieren.
Bei Systemen im BSD-Stil (FreeBSD, OpenBSD usw.) gibt es normalerweise mehrere Dateien im Verzeichnis /etc, um Dienste während des Bootens zu initialisieren. Diese Dateien beginnen normalerweise mit „rc“, und das ist auch der Fall Besteht möglicherweise aus einer Datei namens „rc.local“ (oder etwas Ähnlichem), die speziell zum Starten lokal installierter Dienste verwendet wird. Auf einem solchen System können Sie den Server starten, indem Sie der Datei rc.local eine Zeile ähnlich der folgenden hinzufügen (wenn das Verzeichnis „safe_mysqld“ auf Ihrem System anders ist, ändern Sie es einfach):


if [ -x /usr/local/bin/safe_mysqld ]; dann /usr/local/bin/safe_mysqld &
fi
Für Systeme im System V-Stil können Sie mysql .server platzieren im entsprechenden Startverzeichnis unter /etc, um es zu installieren. Wenn Sie Linux ausführen und MySQL über eine RPM-Datei installieren, ist dies bereits erledigt. Andernfalls installieren Sie das Skript im Hauptstartverzeichnis und stellen Sie die Verbindung dazu im entsprechenden Runlevel-Verzeichnis her. Sie können das Skript auch nur von Root starten lassen.

Das Verzeichnislayout der Startdateien variiert von System zu System. Sie müssen daher überprüfen, wie Ihr System sie organisiert. Unter Linux PPC lauten die Verzeichnisse beispielsweise /etc/rc.d und /etc/rc.d/rc3.d, sodass Sie das Skript wie folgt installieren können:

#cp mysql.server /etc /rc.d /init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc.d/rc3.d
#ln -s ../init .d/mysql.server S99mysql
Unter Solaris ist das Hauptskriptverzeichnis /etc/init.d und das Runlevel-Verzeichnis /etc/rd2.d, daher sieht der Befehl so aus:

#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
# ln -s ../init.d/mysql.server S99mysql
Beim Systemstart wird das S99mysql-Skript automatisch mit einem Startparameter aufgerufen. Wenn Sie über den Befehl chkconfig verfügen (verfügbar unter Linux), können Sie ihn verwenden, um die Installation des mysql.server-Skripts zu unterstützen, anstatt den obigen Befehl wie oben manuell auszuführen.

Startoptionen angeben

Wenn Sie beim Serverstart zusätzliche Startoptionen angeben möchten, haben Sie zwei Methoden. Sie können das von Ihnen verwendete Startskript (safe_mysqld oder mysql.server) ändern und Optionen direkt in der Zeile angeben, die den Server aufruft, oder Optionen in einer Optionsdatei angeben. Es wird empfohlen, Optionen nach Möglichkeit in einer globalen Optionsdatei anzugeben, die sich normalerweise unter /etc/my.cnf (Unix) oder c:my.cnf (Windows) befindet.

Bestimmte Arten von Informationen können nicht mit Serveroptionen angegeben werden. Für diese müssen Sie möglicherweise „safe_mysqld“ ändern. Wenn Ihr Server beispielsweise die lokale Zeitzone nicht richtig auswählen kann und Zeitwerte in GMT zurückgibt, können Sie die TZ-Umgebungsvariable festlegen, um einen Hinweis zu geben. Wenn Sie den Server mit „safe_mysqld“ oder „mysql.server“ starten, können Sie „safe_mysqld“ eine Zeitzoneneinstellung hinzufügen. Suchen Sie die Zeile, die den Server startet, und fügen Sie den folgenden Befehl vor der Zeile ein:

TZ=US/Central
export TZ

Die Syntax des obigen Befehls ist Solaris und die Syntax Bei anderen Systemen kann es zu Abweichungen kommen. Bitte konsultieren Sie das entsprechende Handbuch. Wenn Sie Ihr Startskript ändern, denken Sie daran, dass Ihre Änderungen bei der nächsten Installation von MySQL (z. B. einem Upgrade auf eine neue Version) verloren gehen, es sei denn, Sie kopieren das Startskript zunächst an eine andere Stelle. Vergleichen Sie nach der Installation der neuen Version die alten und neuen Skripte, um zu sehen, welche Änderungen Sie für die Neuerstellung benötigen.

Überprüfen Sie Ihre Tabellen beim Start

Zusätzlich zum Starten Ihres Servers beim Systemstart möchten Sie möglicherweise die Skripte myisamchk und isamchk installieren, um Ihre Tabellen vor dem Serverstart zu überprüfen. Möglicherweise starten Sie nach einem Absturz neu. Möglicherweise ist die Überprüfung vor dem Start eine gute Möglichkeit, das Problem zu finden.

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie einen der MySQL-Dienste starten und stoppen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn