[+/-]
Nachdem Sie MySQL unter Unix installiert haben, müssen Sie die Grant-Tabellen initialisieren, den Server starten und sicherstellen, dass dieser korrekt arbeitet. Ferner sollten Sie das automatische Starten und Beenden des Servers beim Starten bzw. Herunterfahren des Systems konfigurieren. Zudem sind Passwörter für die Konten in den Grant-Tabellen zu erstellen.
Unter Unix werden die Grant-Tabellen durch das Programm mysql_install_db eingerichtet. Bei einigen Installationsmethoden wird dieses Programm für Sie automatisch ausgeführt:
Wenn Sie MySQL unter Linux mithilfe von RPM-Distributionen installieren, startet das Server-RPM mysql_install_db.
Wenn Sie MySQL unter Mac OS X mithilfe einer PKG-Distribution installieren, startet das Installationsprogramm mysql_install_db.
In allen anderen Fällen müssen Sie mysql_install_db selbst ausführen.
Die nachfolgende Vorgehensweise beschreibt, wie man die Grant-Tabellen initialisiert (soweit dies noch nicht geschehen ist) und dann den Server startet. Ferner werden einige Befehle vorgeschlagen, mit denen Sie testen können, ob der Server zugänglich ist und korrekt arbeitet. Informationen zum automatischen Starten und Beenden des Servers finden Sie in Abschnitt 2.9.2.2, „MySQL automatisch starten und anhalten“.
Wenn Sie den Vorgang abgeschlossen haben und der Server läuft, sollten Sie für die von mysql_install_db erstellten Konten Passwörter erstellen. Eine Anleitung hierzu finden Sie in Abschnitt 2.9.3, „Einrichtung der anfänglichen MySQL-Berechtigungen“.
In den nachfolgenden Beispielen läuft der Server unter der
Benutzer-ID des Anmeldekontos mysql
. Dies
setzt natürlich voraus, dass dieses Konto auch existiert. Ist
dies nicht der Fall, dann müssen Sie das Konto entweder
erstellen oder den Namen eines anderen vorhandenen Anmeldekontos
ersetzen, das Sie für die Ausführung des Servers verwenden
wollen.
Wechseln Sie in das oberste Verzeichnis Ihrer
MySQL-Installation (dieses wird hier als
BASEDIR
dargestellt):
shell> cd BASEDIR
BASEDIR
ist dabei so etwas wie
/usr/local/mysql
oder
/usr/local
. Die folgenden Schritte
setzen voraus, dass Sie in dieses Verzeichnis gewechselt
sind.
Sofern notwendig, führen Sie mysql_install_db aus, um die vorgabeseitigen MySQL-Grant-Tabellen mit den Berechtigungen einzurichten, die bestimmen, wie Benutzer mit dem Server Verbindungen herstellen können. Sie müssen das tun, wenn Sie einen Distributionstyp verwendet haben, bei dessen Installation das Programm nicht automatisch ausgeführt wird.
Normalerweise muss mysql_install_db nur bei der Erstinstallation von MySQL ausgeführt werden; Sie können diesen Schritt also überspringen, wenn Sie eine vorhandene Installation aktualisieren. Allerdings überschreibt mysql_install_db keine vorhandenen Berechtigungstabellen, kann also in allen Situationen problemlos ausgeführt werden.
Um die Grant-Tabellen zu initialisieren, verwenden Sie einen
der folgenden Befehle (je nachdem, ob sich
mysql_install_db im Verzeichnis
bin
oder scripts
befindet):
shell>bin/mysql_install_db --user=mysql
shell>scripts/mysql_install_db --user=mysql
Das Skript mysql_install_db erstellt das
Datenverzeichnis des Servers. In diesem Datenverzeichnis
werden Verzeichnisse für die
mysql
-Datenbank, die alle
Datenbankberechtigungen enthält, und die
test
-Datenbank erstellt, die Sie zum
Testen von MySQL verwenden können. Das Skript erstellt
außerdem Einträge für root
-Konten und
Konten für anonyme Benutzer in den Berechtigungstabellen.
Diese Konten haben anfangs kein Passwort. Eine Beschreibung
ihrer Ausgangsberechtigungen finden Sie in
Abschnitt 2.9.3, „Einrichtung der anfänglichen MySQL-Berechtigungen“. Kurz
gesagt, ermöglichen diese Berechtigungen dem
MySQL-root
-Benutzer alles und erlauben
jedem Benutzer zudem die Erstellung und Verwendung von
Datenbanken mit dem Namen test
oder einem
Namen, der mit test_
beginnt.
Es ist wichtig sicherzustellen, dass die
Datenbankverzeichnisse und -dateien im Besitz des Kontos
mysql
sind, damit der Server bei der
späteren Ausführung Lese- und Schreibzugriff darauf hat.
Um dies zu gewährleisten, sollte die Option
--user
wie nachfolgend gezeigt verwendet
werden, wenn Sie mysql_install_db als
root
ausführen. Andernfalls sollten Sie
das Skript ausführen, während Sie als
mysql
angemeldet sind; in diesem Fall
können Sie die Option --user
in dem Befehl
weglassen.
mysql_install_db erstellt eine Reihe von
Tabellen in der mysql
-Datenbank, darunter
u. a. user
, db
,
host
, tables_priv
,
columns_priv
und func
.
Eine vollständige Auflistung und Beschreibung dieser
Tabellen finden Sie in
Abschnitt 5.8, „Allgemeine Sicherheitsaspekte und das MySQL-Zugriffsberechtigungssystem“.
Wenn Sie die test
-Datenbank nicht
brauchen, können Sie sie nach dem Starten des Servers mit
dem Befehl mysqladmin -u root drop test
entfernen.
Sollten Sie an dieser Stelle Probleme mit
mysql_install_db haben, dann finden Sie
weitere Informationen in Abschnitt 2.9.2.1, „Probleme mit mysql_install_db
“.
Starten Sie den MySQL Server:
shell> bin/mysqld_safe --user=mysql &
Es ist wichtig, dass der MySQL Server über ein
berechtigungsloses Anmeldekonto (d. h. kein
root
-Konto) ausgeführt wird. Um dies zu
gewährleisten, sollte die Option --user
wie nachfolgend gezeigt verwendet werden, wenn Sie
mysql_safe
als root
ausführen. Andernfalls sollten Sie das Skript ausführen,
während Sie als mysql
am System
angemeldet sind; in diesem Fall können Sie die Option
--user
in dem Befehl weglassen.
Weitere Anweisungen zur Ausführung von MySQL als berechtigungsloser Benutzer finden Sie in Abschnitt 5.7.5, „Wie man MySQL als normaler Benutzer laufen läßt“.
Wenn Sie vor Durchführung dieses Schritts vergessen haben, die Grant-Tabellen zu erstellen, dann erscheint die folgende Meldung im Fehlerlog, wenn Sie den Server starten:
mysqld: Can't find file: 'host.frm'
Bei Auftreten anderer Probleme während des Serverstarts finden Sie Informationen in Abschnitt 2.9.2.3, „Probleme mit dem Start des MySQL Servers“.
Stellen Sie mit mysqladmin sicher, dass der Server ausgeführt wird. Die folgenden Befehle ermöglichen einfache Tests, um zu prüfen, ob der Server aktiv ist und auf Verbindungen reagiert:
shell>bin/mysqladmin version
shell>bin/mysqladmin variables
Die Ausgabe von mysqladmin version kann je nach Plattform und MySQL-Version variieren, sollte aber der nachfolgend abgebildeten ähneln:
shell> bin/mysqladmin version
mysqladmin Ver 14.12 Distrib 5.1.5-alpha, for pc-linux-gnu on i686
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.1.5-alpha-Max
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 14 days 5 hours 5 min 21 sec
Threads: 1 Questions: 366 Slow queries: 0
Opens: 0 Flush tables: 1 Open tables: 19
Queries per second avg: 0.000
Wenn Sie wissen wollen, was Sie mit
mysqladmin noch machen können, rufen Sie
es mit der Option --help
auf.
Überprüfen Sie nun, ob Sie den Server herunterfahren können:
shell> bin/mysqladmin -u root shutdown
Als Nächstes prüfen Sie, ob Sie den Server neu starten können. Hierzu verwenden Sie mysqld_safe oder rufen mysqld direkt auf. Ein Beispiel:
shell> bin/mysqld_safe --user=mysql --log &
Schlägt mysqld_safe fehl, dann lesen Sie Abschnitt 2.9.2.3, „Probleme mit dem Start des MySQL Servers“.
Führen Sie einige einfache Tests durch, um sicherzustellen, dass Sie Daten am Server abrufen können. Die Ausgabe sollte ähnlich wie nachfolgend aufgeführt aussehen:
shell>bin/mysqlshow
+-----------+ | Databases | +-----------+ | mysql | | test | +-----------+ shell>bin/mysqlshow mysql
Database: mysql +---------------------------+ | Tables | +---------------------------+ | columns_priv | | db | | func | | help_category | | help_keyword | | help_relation | | help_topic | | host | | proc | | procs_priv | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ shell>bin/mysql -e "SELECT Host,Db,User FROM db" mysql
+------+--------+------+ | host | db | user | +------+--------+------+ | % | test | | | % | test_% | | +------+--------+------+
Im Verzeichnis sql-bench
(dieses
befindet sich im MySQL-Installationsverzeichnis) befindet
sich eine Benchmark-Reihe, die Sie verwenden können, um die
Leistungsfähigkeit von MySQL auf verschiedenen Plattformen
zu vergleichen. Diese Benchmark-Reihe ist in Perl
geschrieben. Sie erfordert das Perl-DBI-Modul, welches eine
datenbankunabhängige Schnittstelle zu verschiedenen
Datenbanken bereitstellt, sowie einige weitere Perl-Module:
DBI DBD::mysql Data::Dumper Data::ShowTable
Diese Module erhalten Sie bei CPAN (http://www.cpan.org/). Siehe auch Abschnitt 2.13.1, „Installation von Perl unter Unix“.
Das Verzeichnis sql-bench/Results
enthält die Ergebnisse vieler Testläufe mit
unterschiedlichen Datenbanken und Plattformen. Um alle Tests
durchzuführen, setzen Sie die folgenden Befehle ab:
shell>cd sql-bench
shell>perl run-all-tests
Wenn das Verzeichnis sql-bench
bei
Ihnen nicht vorhanden ist, haben Sie MySQL wahrscheinlich
aus anderen RPM-Dateien als dem Quell-RPM installiert. (Das
Quell-RPM enthält das Benchmark-Verzeichnis
sql-bench
.) In diesem Fall müssen Sie
die Benchmark-Reihe zunächst installieren, bevor Sie sie
verwenden können. Es gibt separate Benchmark-RPMs namens
mysql-bench-
,
die den Benchmark-Code und die Daten enthalten.
VERSION
-i386.rpm
Wenn Sie mit einer Quelldistribution arbeiten, finden Sie in
deren Unterverzeichnis tests
weitere
Tests, die Sie ausführen können. Um etwa
auto_increment.tst
auszuführen, setzen
Sie den folgenden Befehl im obersten Verzeichnis Ihrer
Quelldistribution ab:
shell> mysql -vvf test < ./tests/auto_increment.tst
Die erwarteten Testergebnisse finden Sie in der Datei
./tests/auto_increment.res
.
An dieser Stelle sollte der Server bereits laufen. Allerdings verfügt keines der vorgabeseitigen MySQL-Konten über ein Passwort. Weisen Sie deswegen Passwörter zu wie in Abschnitt 2.9.3, „Einrichtung der anfänglichen MySQL-Berechtigungen“, beschrieben.
Der Installationsvorgang für MySQL 5.1 erstellt
Zeitzonentabellen in der Datenbank mysql
. Sie
müssen die Tabellen allerdings manuell ausfüllen; wie das
geht, steht in Abschnitt 5.11.8, „Zeitzonen-Unterstützung des MySQL-Servers“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.