MySQL/de

From SME Server
Revision as of 11:57, 29 September 2007 by Cactus (talk | contribs) (Replaced Template:drawBox* (deprecated) with Template:* box and made language independant)
Jump to navigation Jump to search

MySQL Datenbank

SME Server verwendet MySQL als Datenbank-Server. Eine ganze Reihe an Anwendungen benötigen MySQL als Datenbank, darunter auch Horde Webmail, mit dem der SME Server von Haus aus ausgestattet ist.

Nützliche links

Allgemeines

Der SME Server basiert auf CentOS und benutzt möglichst unverändert die aktuellen RPM-Pakete der jeweiligen CentOS-Version. Die aktuelle Version von MySQL ist 4.1.20.


  Warnung
Die Aktualisierung auf eine höhere Version von MySQL wird nicht empfohlen, weil damit Ihre SME Server Konfiguration beschädigt bzw. zerstört werden könnten. Bekannt ist z.B. die Beschädigung von Webmail beim Upgrade auf MySQL 5.x. Falls Sie dennoch auf einer höheren Version bestehen, können Sie zwar Ratschläge in den Foren erhalten. Support ist aber dann nicht mehr möglich.


MySQL läuft auf dem SME Server nicht unter einem Port sondern einem Socket, das vielleicht etwas gewöhnungsbedürftig ist. Aus Sicht der Entwickler erhöht das die Sicherheit, weil nur der Server selbst (localhost) Zugang zum MySQL Server benötigt. Sie können natürlich trotzdem Ihren Server so konfigurieren, dass MySQL auch aus dem Netzwerk erreichbar ist.

MySQL Root-Kennwort

Auf den ersten Blick scheint MySQL ohne Root-Kennwort zu laufen, aber das ist nicht der Fall. Falls Sie sich am SME Server als Benutzer root angemeldet haben, sorgt ein spezieller Mechanismaus dafür, dass Sie sich mit MySQL Root-Privilegien anmelden können, ohne ein Kennwort eingeben zu müssen.

Das MySQL Root-Kennwort für den SME Server wurde bei der Installation des SME Server generiert und ist 72 Zeichen lang.

  Warnung
Sie sollten niemals das MySQL Root-Kennwort ändern, weil Sie damit die SME Server-Konfiguration beschädigen.


Anmelden als MySQL root user

Um sich als MySQL root user anzumelden, geben Sie einfach 'mysql' am Linux Prompt ein, nachdem Sie sich als Benutzer 'root' am SME Server angemeldet haben.

Das MySQL Root-Kennwort zurücksetzen

Falls Sie aus Versehen das MySQL Root-Kennwort des SME Server geändert haben sollten: Mit dieser Option können Sie es auf die Voreinstellung zurücksetzen, die einen 72 Zeichen langen Ausdruck generiert:

 cd /var/service/mysqld
 runsvctrl d .
 expand-template /root/.my.cnf
 expand-template /var/service/mysqld/set.password
 /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables < ./set.password
 runsvctrl u .

Zugriff auf MySQL aus dem lokalen Netzwerk

Aus Sicherheitsgründen ist MySQL in der Voreinstellung auf dem SME so konfiguriert, dass Zugriffe nur vom Server selbst und nicht vom Netzwerk aus oder aus dem Internet möglich sind. Falls Sie den Zugriff aus dem lokalen Netzwerk benötigen, führen Sie aus der SME Server shell als Benutzer 'root' folgende Befehle aus:

 config setprop mysqld LocalNetworkingOnly no
 expand-template /etc/my.cnf
 /etc/rc.d/init.d/mysqld restart

Administration

Eine neue Datenbank erstellen

  • Lesen Sie im Entwicklerhandbuch, wie eine neue Datenbank mit einem RPM-Paket automatisch erstellt wird oder
  • Melden Sie sich als Benutzer 'root' an der SME Server shell an und geben folgende Befehle ein:
 mysqladmin createdatabase 'name'

Damit wird eine neue Datenbank mit dem Namen 'name' erstellt.


  Warnung
Erteilen Sie dem Benutzer 'root' keine Rechte an Datenbanken außer vom localhost aus. Es wird dringend empfohlen, für jede Datenbank einen eigenen Benutzer zum Datenbankzugriff einzurichten!


MySQL-Benutzer einrichten

Überlegen Sie genau, welchen Benutzer Sie mit welchen Rechte für die neue Datenbank benötigen. Details zum MySQL-Rechtekonzept finden Sie im MySQL-Handbuch. Um einen MySQL-Benutzer einzurichten, melden Sie sich als Benutzer 'root' an der SME Server shell an und geben folgende Befehle ein:

 mysql

Einen Benutzer erstellen, der Lesezugriff auf alle Tabellen der Datenbank 'test' erhält:

GRANT SELECT ON test.* TO 'user'@'host' IDENTIFIED BY 'password';