edv:alt:mysql_datenbank_einrichten
Differences
This shows you the differences between two versions of the page.
| edv:alt:mysql_datenbank_einrichten [2023/01/15 11:47] – ↷ Seite von edv:alt:mysql_datenbank_einrichten nach edv_intern_smart_home:edv:alt:mysql_datenbank_einrichten verschoben zwerger | edv:alt:mysql_datenbank_einrichten [2023/01/19 22:19] (current) – created - external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ==== Erstellen eines Benutzers in MySQL ==== | ||
| + | Zunächst starte die MySQL Konsole. Dazu öffne ein Terminal (bspw. PuTTY oder XTerm) und verbinde dich auf den Server mit deiner MySQL Installation (10.30.0.16). Wir benutzen den Benutzer ‚root‘ auf deiner MySQL Installation. Alternativ nutze deinen Benutzernamen. Hast du den Benutzer mit einem Kennwort versehen, so nutze folgendes Kommando: | ||
| + | < | ||
| + | Du wirst dann nach einem Kennwort gefragt. Nach der Eingabe solltest du den MySQL Prompt sehen. Hast du kein Kennwort gesetzt, so verzichte auf den Parameter ‚-p‘ und du wirst nicht nach einem Kennwort gefragt. | ||
| + | <code bash> | ||
| + | Enter password: | ||
| + | Welcome to the MySQL monitor. Commands end with ; or \g. | ||
| + | Your MySQL connection id is 98 | ||
| + | Server version: 5.5.47-0+deb8u1 (Debian) | ||
| + | |||
| + | Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. | ||
| + | |||
| + | Oracle is a registered trademark of Oracle Corporation and/or its | ||
| + | affiliates. Other names may be trademarks of their respective | ||
| + | owners. | ||
| + | |||
| + | Type ' | ||
| + | |||
| + | mysql></ | ||
| + | Das Erstellen eines neuen Benutzers ist vergleichsweise einfach. Ersetze in dem nachfolgendem Befehl einfach die Werte „benutzer“ und „passwort“: | ||
| + | <code sql> CREATE USER ' | ||
| + | Damit hast du einen Benutzer erstellt, der allerdings noch keine Berechtigungen auf irgendeine Datenbank oder Tabelle hat. Zu Testzwecken erstelle nun eine neue Datenbank, auf die der Benuter später zugreifen darf. | ||
| + | <code sql> CREATE DATABASE meineDB; </ | ||
| + | Und nun gewähre deinem neuen Benutzer alle Rechte auf diese Datenbank. Ersetze wieder den Wert „benutzer“ durch deinen eigenen Benutzernamen: | ||
| + | <code sql> GRANT ALL PRIVILEGES ON meineDB . * TO ' | ||
| + | Kurz zur Erklärung des o.s. Kommandos: | ||
| + | <code sql> | ||
| + | <code sql>ON ‚meineDB‘ . * </ | ||
| + | <code sql>TO ‚benutzer’@’%‘ </ | ||
| + | Das ' | ||
| + | MySQL hält die Rechte normalerweise im Speicher vor, damit nicht jedes Mal, wenn sich ein Benutzer an der Datenbank anmeldet (was im Zweifel sehr oft sein kann), langsame I/O Operationen durchgeführt werden müssen. Um diese Kopie der Privilegien im Arbeitsspeicher zu updaten, solltest du nach jeder Änderung einmal das Kommando: | ||
| + | <code sql> FLUSH PRIVILEGES; </ | ||
| + | ausführen. Vergisst du das Kommando, kann es sein das du dich mit den neuen (oder geänderten) Zugangsdaten noch nicht an dem Datenbankserver anmelden kannst. | ||
| + | ==== Weitere Privilegien in MySQL ==== | ||
| + | Neben dem oben genutzten ‚ALL PRIVILEGES‘ kannst du einem Benutzer auch andere Sets an Privilegien in deinem MySQL Server zuweisen. Da sind beispielsweise folgende: | ||
| + | * ALL PRIVILEGES : Ein Wildcard für alle Rechte auf das gewählte Datenbankobjekt, | ||
| + | * CREATE : Erlaubt einem Benutzer, neue Datenbanken zu erstellen | ||
| + | * DROP : Erlaubt einem Benutzer, Datenbanken zu löschen | ||
| + | * DELETE : Erlaubt einem Benutzer, einzelne Zeilen in einer Tabelle zu löschen | ||
| + | * INSERT : Erlaubt einem Benutzer, neue Zeilen in eine Tabelle zu schreiben | ||
| + | * SELECT : Leseberechtigungen auf eine Datenbank oder Tabelle | ||
| + | * UPDATE : Erlaubnis, eine Zeile zu aktualisieren | ||
| + | * GRANT OPTION : Erlaubt einem Benutzer, die Rechte anderer Benutzer zu setzen oder zu widerrufen | ||
| + | Der genaue Syntax ist in der Dokumentation von MySQL sehr gut beschrieben. Du findest sie unten. | ||
| + | |||
| + | Um einem Nutzer im Nachhinein den Zugriff von anderen PHP-Servern zu erlauben, gibt man folgenden Befehl ein: | ||
| + | <code sql>USE mysql; Update user set host=' | ||
| + | % steht dabei für alle Hosts. | ||
| + | |||
| + | Die Rechte eines Benutzers kann man anzeigen bzw. ändern durch folgende Befehle: | ||
| + | <code sql> | ||
| + | Rechte anzeigen: | ||
| + | <code sql>show grants for ' | ||
| + | Um Rechte zu ändern, erst alle Rechte entziehen: | ||
| + | <code sql> | ||
| + | Dann die gewünschten Rechte zuweisen: | ||
| + | <code sql> | ||
| + | um alle Rechte auf alle Datenbanken zu geben: | ||
| + | <code sql> | ||
| + | Am Ende noch tatsächlich zuweisen mit flush: | ||
| + | <code sql> | ||
| + | |||
| + | Details hier: | ||
| + | [[http:// | ||
| + | |||
| + | Einen Benutzer kannst du genauso einfach löschen, wie anlegen. Nutze dazu folgenden Befehl: | ||
| + | <code sql> DROP USER ' | ||
| + | Versichere dich, dass du die Privilegien neu geladen hast, nach jeder Änderung an den Rechtetabellen. | ||
| + | |||
| + | Quelle: [[https:// | ||
