MySQL: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
K (→‎MySQL-User: Es gibt keinen xyz00 MySQL-User mehr - nur noch xyz00_abc)
Zeile 10: Zeile 10:
{{Textkasten|gruen||Die Namen der Datenbank-Benutzer müssen in keiner Beziehung zu den Unix-Benutzernamen auf den Hostsharing-Systemen stehen, also den Namen, die für den [[shell]]-Zugang verwendet werden.}}
{{Textkasten|gruen||Die Namen der Datenbank-Benutzer müssen in keiner Beziehung zu den Unix-Benutzernamen auf den Hostsharing-Systemen stehen, also den Namen, die für den [[shell]]-Zugang verwendet werden.}}


Es gilt jedoch die Regel, dass die Namen aller Datenbank-Benutzer eines Pakets mit dem Paketkürzel beginnen. Eine sinnvolle Konvention ist es, sofern man als Paketadministrator einen zentralen Datenbank-Administrator für alle Datenbanken einrichten möchte, diesen nur nach dem Paket zu benennen (z. B. '''xyz00'''). So zeigt der kurze Name die Sonderstellung an und der Paket-Administrator gleichzeitig zentraler Datenbankadministrator ist, kann er seinen Datenbank-Benutzernamen nicht ohne den Paket-Namen vergessen, sprich immer leicht ableiten.
Es gilt jedoch die Regel, dass die Namen aller Datenbank-Benutzer eines Pakets mit dem Paketkürzel beginnen, gefolgt von einem Unterstrich (also '''xyz00_''').
 
Die weitere Namensgebung ist frei. Beachte die Differenz zu Unix-User-Namen, die nicht mit Unterstrich, sondern mit Bindestrich gebildet werden ('''xyz00_abc''' -> '''xyz00-abc''').
Weitere Datenbank-Benutzernamen können aus dem Paket-Namen, einem Unterstrich, und einer freien Zeichenfolge gebildet werden. Also kann der Paketadmin '''xyz00''' weitere User der Form '''xyz00_abc''' einrichten. Beachte die Differenz zu Unix-User-Namen, die nicht mit Unterstrich, sondern mit Bindestrich gebildet werden ('''xyz00''' -> '''xyz00-abc''').


Sinnvoll ist es z.B. für jede Anwendung eine eigene Datenbank und mindestens einen auf die jeweilige Datenbank beschränkten Benutzer anzulegen.
Sinnvoll ist es z.B. für jede Anwendung eine eigene Datenbank und mindestens einen auf die jeweilige Datenbank beschränkten Benutzer anzulegen.
Zeile 23: Zeile 22:
* Datenbank-Benutzer anlegen und löschen
* Datenbank-Benutzer anlegen und löschen


Bevor man in seinem Paket eine Datenbank anlegen kann, muss man zunächst einen Datenbank-Benutzer einrichten, den man zum Datenbank-Administrator machen kann. Das ist zwingend notwendig. Datenbank-Administrator kann ein Datenbank-User mit dem Kürzel des Paketadmins sein (<b>xyz00</b>). Es können allerdings auch beliebige Namen, die mit dem Paketkürzel <b>xyz00_...</b> beginnen angelegt werden. Ein Datenbank-Adminstrator hat alle Rechte an einer Datenbank und wird wie unter "[[Datenbanken#Verwaltung_von_Datenbanken |Verwaltung von Datenbanken]]" beschrieben eingerichtet.
Bevor man in seinem Paket eine Datenbank anlegen kann, muss man zunächst einen Datenbank-Benutzer einrichten. Das ist zwingend notwendig, da beim anlegen einer Datenbank ein Datenbank-Administrator, der Owner (Besitzer) zugewiesen werden muss.  
 
Datenbank-Administrator kann jeder angelegte Datenbank-Benutzer werden. Ein Datenbank-Administrator hat alle Rechte an einer Datenbank und wird wie unter "[[Datenbanken#Verwaltung_von_Datenbanken |Verwaltung von Datenbanken]]" beschrieben eingerichtet.


=== Weitere Benutzer anlegen ===
=== Weitere Benutzer anlegen ===
Zeile 49: Zeile 50:


Nun können wir MySQL-Befehle eingeben. Zu beachten ist, dass man nach einem Kommando mit einem ; abschließen muss. Es gibt einige Ausnahmen, wo man das nicht braucht, z.B. beim Befehl QUIT, mit dem man den Monitor wieder verlässt.
Nun können wir MySQL-Befehle eingeben. Zu beachten ist, dass man nach einem Kommando mit einem ; abschließen muss. Es gibt einige Ausnahmen, wo man das nicht braucht, z.B. beim Befehl QUIT, mit dem man den Monitor wieder verlässt.
=== Datenbank anlegen ===  
=== Datenbank anlegen ===  


Zeile 62: Zeile 64:
=== Rechte vergeben ===
=== Rechte vergeben ===


Allen Benutzern, außer dem Paketadmin, müssen wir noch Rechte geben, sonst können sie gar nichts machen. Das erledigt man mit dem Befehl <b>GRANT</b>.
Allen Benutzern, außer dem Datenbank-Administrator, müssen wir noch Rechte geben, sonst können sie gar nichts machen. Das erledigt man mit dem Befehl <b>GRANT</b>.


<pre><nowiki>
<pre><nowiki>

Version vom 26. September 2012, 11:12 Uhr

Server

Wir haben pro Host einen einzelnen MySQL Datenbankserver. Der Zugriff erfolgt über den Hostnamen localhost und den Port 3306 (default). Außerdem kann der Server über den Socket /var/run/mysqld/mysqld.sock erreicht werden.

Die Anzahl der in Hostsharing Dynamic-Web-Paketen verwendbaren MySQL-Datenbanken ist ist durch die Anzahl der jeweils gebuchten Multioptionen begrenzt. Der damit verbrauchte Speicherplatz geht in die Quota des Paketes mit ein, sodass hierüber eine zusätzliche Begrenzung vorliegt. Alle Datenbanken eines Paketes müssen mit dem Paketnamen und einem Underscore beginnen, also z.B. xyz00_datenbank.

MySQL-User

Die Namen der Datenbank-Benutzer müssen in keiner Beziehung zu den Unix-Benutzernamen auf den Hostsharing-Systemen stehen, also den Namen, die für den shell-Zugang verwendet werden.


Es gilt jedoch die Regel, dass die Namen aller Datenbank-Benutzer eines Pakets mit dem Paketkürzel beginnen, gefolgt von einem Unterstrich (also xyz00_). Die weitere Namensgebung ist frei. Beachte die Differenz zu Unix-User-Namen, die nicht mit Unterstrich, sondern mit Bindestrich gebildet werden (xyz00_abc -> xyz00-abc).

Sinnvoll ist es z.B. für jede Anwendung eine eigene Datenbank und mindestens einen auf die jeweilige Datenbank beschränkten Benutzer anzulegen.

Paketadmin

Der Paketadmin hat mit seinem Account sehr weitgehende administrative Rechte in MySQL und sollte dementsprechend mit Umsicht genutzt werden. Er kann mit seinem Account im Administrationswerkzeug hsadmin unter anderem:

  • Datenbanken anlegen und löschen
  • Datenbank-Benutzer anlegen und löschen

Bevor man in seinem Paket eine Datenbank anlegen kann, muss man zunächst einen Datenbank-Benutzer einrichten. Das ist zwingend notwendig, da beim anlegen einer Datenbank ein Datenbank-Administrator, der Owner (Besitzer) zugewiesen werden muss.

Datenbank-Administrator kann jeder angelegte Datenbank-Benutzer werden. Ein Datenbank-Administrator hat alle Rechte an einer Datenbank und wird wie unter "Verwaltung von Datenbanken" beschrieben eingerichtet.

Weitere Benutzer anlegen

Du kannst Dir weitere Benutzer für MySQL anlegen. Wir empfehlen Dir das ausdrücklich, weil es eine gute Idee ist, den mächtigen Zugang eines Datenbank-Admins nur für administrative Zwecke zu benutzen. Wenn Skripte z.B. keine ganzen Tabellen löschen dürfen (drop) kann dies auch nicht aus versehen oder böswillig geschehen. Für einzelne Aufgaben kannst Du verschiedene Benutzer anlegen, denen Du natürlich auch verschiedene Rechte geben kannst, z.B. nur Leserechte an bestimmten Tabellen oder bestimmte Kommandos.

Wir legen noch einen User an:

siehe Datenbanken

Der MySQL-Monitor

Mit den neu angelegten User-Accounts können wir nun in den MySQL-Monitor wechseln, in dem die MySQL-Befehle eingegeben und verarbeitet werden. Der Monitor wird mit dem Befehl mysql aufgerufen. Es ist hier übrigens egal, ob wir als Paketadmin oder als Domainadmin eingeloggt sind, denn MySQL-User und UNIX-Accounts haben keinen Zusammenhang. Wir können mit jedem UNIX-Account, also auch als normaler Domainadmin auf jeden Datenbank-Account zugreifen - auch auf den Paketadmin-Account.

Da wir uns mit Benutzernamen und Passwort anmelden müssen, verwenden wir die Optionen -u (und danach den Benutzernamen) und -p. Das Passwort geben wir nicht in dieser Kommandozeile an, denn sonst ist es für andere User sichtbar. Wenn wir nach -p nichts angeben, werden wir von mysql danach gefragt und geben es dann an.

xyz00@hopi$ mysql -u xyz00 -p
Enter password: password
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1257230 to server version: 3.23.49-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Nun können wir MySQL-Befehle eingeben. Zu beachten ist, dass man nach einem Kommando mit einem ; abschließen muss. Es gibt einige Ausnahmen, wo man das nicht braucht, z.B. beim Befehl QUIT, mit dem man den Monitor wieder verlässt.

Datenbank anlegen

geht nun auch mit hsadmin siehe Datenbanken.

Datenbanknamen in MySQL beginnen bei Hostsharing immer mit dem Namen des Pakets, gefolgt von einem Unterstrich; danach folgt der frei wählbare eigentliche Name.

Beispiele gültiger Datenbanken für ein Paket xyz00:

  • xyz00_otto
  • xyz00_anna
  • xyz00_db_fuer_hans

Rechte vergeben

Allen Benutzern, außer dem Datenbank-Administrator, müssen wir noch Rechte geben, sonst können sie gar nichts machen. Das erledigt man mit dem Befehl GRANT.

mysql>GRANT SELECT, INSERT, DELETE, UPDATE ON xyz00_meinedatenbank.* TO xyz00_otto;

Hinter der Datenbank verwenden wir .*, um alle Tabellen der Datenbank zu inkludieren.

Mit GRANT ALL kann man einem User auch alle Kommandorechte zuweisen.

Alle Aufgaben können wir jetzt in Zukunft vom User xyz00_otto erledigen lassen.

Verschiedenes