180 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
HINWEIS: Mehrere MySQL-Server (mysqld) auf verschiedenen Maschinen laufen lassen,
die auf ein gemeinsames Datenverzeichnis ¨uber NFS zugreifen, ist generell eine SCHLECHTE
IDEE! Das Problem liegt darin, dass NFS zum Flaschenhals in Punkto Geschwindigkeit wird,
denn es ist nicht f¨ur solche Zwecke gedacht. Und letztlich m¨ussten Sie immer noch eine
L¨osung daf¨ur finden, dass sich zwei oder mehr mysqlds nicht in die Quere kommen. Mo-
mentan gibt es keine Plattform, die mit 100%-iger Zuverl¨assigkeit Datei-Sperren (File Lock-
ing, gew¨ohnlich mit dem lockd-Daemon) in jeder Situation durchf¨uhrt. Dennoch stellt NFS
ein weiteres m¨ogliches Risiko dar, denn es macht es dem lockd-Daemon noch schwieriger,
Datei-Sperren zu handhaben. Machen Sie es sich also leicht und vergessen Sie diese Idee!
Die funktionierende L¨osung ist, einen Computer mit einem Betriebssystem einzusetzen, dass
Threads effizient handhabt und mehrere Prozessoren hat.
Wenn Sie sich mit einem MySQL-Server verbinden wollen, der mit einem anderen Port l¨auft
als mit dem, der in Ihren Client kompiliert ist, k¨onnen Sie folgende Methoden benutzen:
• Starten Sie den Client mit --host ’hostname’ --port=port_nummer, um sich ¨uber
TCP/IP zu verbinden, oder mit [--host localhost] --socket=datei, um sich ¨uber
ein Unix-Socket zu verbinden.
• In Ihren C- oder Perl-Programmen k¨onnen Sie die Port- oder Socket-Argumente
angeben, wenn Sie sich mit dem MySQL-Server verbinden.
• Wenn Sie das Perl-DBD::mysql-Modul benutzen, k¨onnen Sie die Optionen aus den
MySQL-Optionsdateien lesen. Siehe Abschnitt 5.1.2 [Option files], Seite 175.
$dsn = "DBI:mysql:test;mysql_read_default_group=client;mysql_read_default_file=/usr/local/mysql/data/my.cnf"
$dbh = DBI->connect($dsn, $user, $password);
• Setzen Sie die MYSQL_UNIX_PORT- und MYSQL_TCP_PORT-Umgebungsvariablen, so dass
sie auf den Unix-Socket und TCP/IP-Port zeigen, bevor Sie Ihre Clients starten. Wenn
Sie normalerweise eine speziellen Socket oder Port benutzen, sollten Sie die Befehle
zum Setzen dieser Umgebungsvariablen in Ihrer ‘.login’-Datei unterbringen. Siehe
Anhang E [Environment variables], Seite 707.
• Legen Sie den vorgabem¨aßigen Socket und TCP/IP-Port in der ‘.my.cnf’-Datei in
Ihrem Heimatverzeichnis fest. Siehe Abschnitt 5.1.2 [Option files], Seite 175.
5.2 Allgemeine Sicherheitsthemen und das MySQL-
Zugriffsberechtigungssystem
MySQL hat ein fortgeschrittenes, aber nicht standardisiertes Sicherheits- bzw. Berechti-
gungssystem. Dieser Abschnitt beschreibt, wie es funktioniert.
5.2.1 Allgemeine Sicherheitsrichtlinien
Jeder, der MySQL auf einem Computer benutzt, der mit dem Internet verbunden ist, sollte
diesen Abschnitt lesen, um die gebr¨auchlichsten Sicherheitsfehler zu vermeiden.
Wenn wir ¨uber Sicherheit sprechen, unterstreichen wir die Notwendigkeit, den gesamten
Server-Host (und nicht nur den MySQL-Server) gegen alle Arten m¨oglicher Angriffe abzu-
sichern: Lauschangriffe,
¨
Anderungen (Altering), Playback und Dienstverweigerung (Denial
of Service). Dieser Abschnitt deckt nicht alle Aspekte von Verf¨ugbarkeit und Fehlertoleranz
ab.
Comentarios a estos manuales