MySQL: Unterschied zwischen den Versionen
K (→Rechte vergeben: @localhost entfernt) |
K (→Passwortänderung: localhost entfernt) |
||
Zeile 57: | Zeile 57: | ||
<pre><nowiki> | <pre><nowiki> | ||
mysql>SET PASSWORD FOR | mysql>SET PASSWORD FOR xyz00_otto = PASSWORD('ottosneuespasswort'); | ||
</nowiki></pre> | </nowiki></pre> | ||
Version vom 17. Juni 2009, 12:13 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 an sich nicht begrenzt. Der damit verbrauchte Speicherplatz geht in aber die Quota des Paketes mit ein, so dass hierüber eine indirekte Begrenzung vorliegt. Alle Datenbanken eines Paketes müssen mit dem Paketnamen und einem Underscore beginnen, also z.B. xyz00_datenbank
.
MySQL-User
Paketadmin
Der Paketadmin hat mit seinem Account sehr weitgehende administrative Rechte und sollte dementsprechend mit Umsicht genutzt werden. Er kann mit seinem Account unter anderem:
- Datenbanken anlegen und löschen
- Benutzer anlegen und löschen
- Rechte an Benutzer vergeben
Bevor man in seinem Paket MySQL benutzen kann, muss man als ersten Schritt einen Zugang für den Paketadmin einrichten. Das ist zwingend notwendig. Der MySQL-User mit dem Kürzel des Paketadmins (xyz00
) besitzt automatisch alle Rechte an allen Datenbanken des Paketes, er ist also sehr mächtig. Wir richten den User mit dbadmin ein, weil das am einfachsten ist.
xyz00@hopi$ dbadmin -a -i mysql -u xyz00 Password: password User 'xyz00' created.
Der Benutzername des Paketadmins für MySQL entspricht dem Benutzernamen des Paketadmins für den Zugang zum Server. Das ist eine von uns gewählte Konvention, damit Du Dir den Namen für den MySQL-Zugang leichter merken kannst. Grundsätzlich stehen die Benutzernamen für MySQL in keiner Beziehung zu den Benutzernamen für die Server.
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 des Paketadmins nur für administrative Zwecke zu benutzen. Schließlich will man nicht immer den mächtigen Account des Paketadmins in seinen Skripten verwenden. Für einzelne Aufgaben kannst Du verschiedene Benutzer anlegen, denen Du natürlich auch verschiedene Rechte geben kannst, z.B. nur Rechte an bestimmten Datenbanken oder zur Ausführung bestimmter Kommandos.
Wir legen noch einen User an:
xyz00@hopi$ dbadmin -a -i mysql -u xyz00_otto Password: password User 'xyz00_otto' created.
mehr zum Anlegen neuer User mit dbadmin
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.
Passwortänderung
mysql>SET PASSWORD FOR xyz00_otto = PASSWORD('ottosneuespasswort');
Datenbank anlegen
mysql>CREATE DATABASE xyz00_meinedatenbank;
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 Paketadmin, 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. Man kann auch *.* für alle Tabellen in allen Datenbanken verwenden.
Mit GRANT ALL
kann man einem User auch alle Kommandorechte zuweisen.
ACHTUNG: GRANT
ALL zur Zeit nicht möglich. Man kann aber alle Rechte explizit vergeben:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER ON ... TO ...;
Alle Aufgaben können wir jetzt in Zukunft vom User xyz00_otto
erledigen lassen.
Verschiedenes
- Web-Frontend: phpMyAdmin ist unter https://phpmyadmin.hostsharing.net/current erreichbar.
- Online-Dokumentation: Die Online-Doku zu MySQL gibt es unter http://dev.mysql.com/doc/. Auf dieser Site gibt es auch mehrere Fassungen der kompletten Doku zum Downloaden.