Verwalten der MySQL-Datenbank: Unterschied zwischen den Versionen
imported>EL Duderino |
imported>EL Duderino →Auf der Kommandozeile: initial import |
||
Zeile 21: | Zeile 21: | ||
$ /usr/syno/mysql/bin/mysql -u root -pYourPassword | $ /usr/syno/mysql/bin/mysql -u root -pYourPassword | ||
</pre> | </pre> | ||
(Stand DSM 4.1) erreichbar ist (Kein Leerzeichen zwischen '''-p''' und dem Passwort eingeben!). Für den Einsatz in Skripten kann man MySQL mit dem Schalter '''-e''' auch direkt aus der Shell mitteilen, was gewünscht ist: | (Stand DSM 4.1) erreichbar ist ''(Kein Leerzeichen zwischen '''-p''' und dem Passwort eingeben!)''. Für den Einsatz in Skripten kann man MySQL mit dem Schalter '''-e''' auch direkt aus der Shell mitteilen, was gewünscht ist: | ||
<pre> | <pre> | ||
$ /usr/syno/mysql/bin/mysql -u root -pYourPassword -e "Kommando 1; Kommando 2; ..." | $ /usr/syno/mysql/bin/mysql -u root -pYourPassword -e "Kommando 1; Kommando 2; ..." | ||
</pre> | </pre> | ||
Da die Syntax der SQL-Befehle natürlich übereinstimmt, wird | oder die Befehle auf <tt>stdin</tt> übergeben. Da die Syntax der SQL-Befehle natürlich übereinstimmt, wird hauptsächlich der interaktive Modus beschrieben. | ||
=== Anlegen einer Datenbank === | === Anlegen einer Datenbank === | ||
Eine Datenbank namens ''db'' wird so angelegt: | |||
<pre> | |||
mysql> CREATE DATABASE db; | |||
</pre> | |||
=== Anlegen eines Nutzers === | === Anlegen eines Nutzers === | ||
Ein Nutzer ''user'' mit dem Passwort ''password'' wird angelegt. Die Einschränkung ''@'localhost' '' bewirkt, daß ''user'' nicht über eine Netzwerkverbindung auf MySQL zugreifen kann. | |||
<pre> | |||
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; | |||
</pre> | |||
Statt '''IDENTIFIED BY''' kann auch '''IDENTIFIED BY PASSWORD''' benutzt werden, das Passwort muß dann aber als Hash vorliegen (kann mit '''SELECT PASSWORD''' errechnet werden, z.B. ergibt '''SELECT PASSWORD('password');''' den Hash ''*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19''). | |||
Um dem Nutzer möglichst wenig Rechte zu geben, führt man | |||
<pre> | |||
mysql> GRANT USAGE ON * . * TO 'user'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; | |||
</pre> | |||
aus. | |||
=== Gewähren und Entziehen von Rechten === | === Gewähren und Entziehen von Rechten === | ||
<pre> | |||
mysql> GRANT ALL PRIVILEGES ON `db` TO 'user'@'localhost'; | |||
mysql> FLUSH PRIVILEGES; | |||
</pre> | |||
=== Installation eines Daten-Schemas === | === Installation eines Daten-Schemas === |
Version vom 30. Dezember 2012, 20:47 Uhr
Dieser Artikel zeigt grundlegende Verwaltungsakte der MySQL-Datenbanken. Es werden sowohl die Kommandozeile als auch die grafische Oberfläche phpMyAdmin behandelt. Hier fehlt noch der Inhalt.
Mit phpMyAdmin
Installation von phpMyAdmin
Ist Thema dieses Artikels.
Anlegen einer Datenbank
Anlegen eines Nutzers
Gewähren und Entziehen von Rechten
Installation eines Daten-Schemas
Auf der Kommandozeile
Zur Eingabe der SQL-Befehle gibt es zwei Wege: Einmal die interaktive MySQL-Kommandozeile, die über
$ /usr/syno/mysql/bin/mysql -u root -pYourPassword
(Stand DSM 4.1) erreichbar ist (Kein Leerzeichen zwischen -p und dem Passwort eingeben!). Für den Einsatz in Skripten kann man MySQL mit dem Schalter -e auch direkt aus der Shell mitteilen, was gewünscht ist:
$ /usr/syno/mysql/bin/mysql -u root -pYourPassword -e "Kommando 1; Kommando 2; ..."
oder die Befehle auf stdin übergeben. Da die Syntax der SQL-Befehle natürlich übereinstimmt, wird hauptsächlich der interaktive Modus beschrieben.
Anlegen einer Datenbank
Eine Datenbank namens db wird so angelegt:
mysql> CREATE DATABASE db;
Anlegen eines Nutzers
Ein Nutzer user mit dem Passwort password wird angelegt. Die Einschränkung @'localhost' bewirkt, daß user nicht über eine Netzwerkverbindung auf MySQL zugreifen kann.
mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Statt IDENTIFIED BY kann auch IDENTIFIED BY PASSWORD benutzt werden, das Passwort muß dann aber als Hash vorliegen (kann mit SELECT PASSWORD errechnet werden, z.B. ergibt SELECT PASSWORD('password'); den Hash *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19).
Um dem Nutzer möglichst wenig Rechte zu geben, führt man
mysql> GRANT USAGE ON * . * TO 'user'@'localhost' IDENTIFIED BY 'password' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
aus.
Gewähren und Entziehen von Rechten
mysql> GRANT ALL PRIVILEGES ON `db` TO 'user'@'localhost'; mysql> FLUSH PRIVILEGES;