Lernen Sie MySQL / Mariadb für Anfänger - Teil 1
- 3295
- 22
- Madleen Vater
In diesem Artikel zeigen wir, wie Sie eine Datenbank (auch als Schema bezeichnet), Tabellen (mit Datentypen) erstellen und erklären Datenmanipulierungssprache (DML) Vorgänge mit Daten auf a Mysql / Mariadb Server.
Es wird angenommen, dass Sie zuvor haben 1) installierte die erforderlichen Pakete auf Ihrem Linux -System und 2) hingerichtet mysql_secure_installation Verbesserung der Sicherheit des Datenbankservers. Wenn nicht, folgen Sie den folgenden Anleitungen zur Installation von MySQL/MariadB Server.
- Installieren Sie die neueste MySQL -Datenbank in Linux -Systemen
- Installieren Sie die neueste MariADB -Datenbank in Linux -Systemen
Für die Kürze werden wir uns beziehen Mariadb Ausschließlich in diesem Artikel, aber die hier beschriebenen Konzepte und Befehle gelten für Mysql sowie.
Teil 1: Lernen Sie MySQL / Mariadb für Anfänger Teil 2: Erfahren Sie, wie Sie mehrere Funktionen von MySQL und Mariadb verwendenErstellen von Datenbanken, Tabellen und autorisierten Benutzern
Wie Sie wissen, kann eine Datenbank einfach als organisierte Informationssammlung definiert werden. Insbesondere, Mariadb ist ein relationales Datenbankverwaltungssystem (RDBMs) und verwendet die Struktur -Abfragesprache, um Operationen in Datenbanken durchzuführen. Beachten Sie außerdem, dass Mariadb die Begriffe Datenbank und das Schema austauschbar verwendet.
Um anhaltende Informationen in einer Datenbank zu speichern, werden wir verwenden Tische Diese speichern Datenzeilen von Daten. Oft werden zwei oder mehr Tabellen in irgendeiner Weise miteinander in Verbindung gebracht. Das ist Teil der Organisation, die die Verwendung relationaler Datenbanken charakterisiert.
Erstellen einer neuen Datenbank
So erstellen Sie eine neue Datenbank mit dem Namen Booksdb
, Geben Sie die Mariadb -Eingabeaufforderung mit dem folgenden Befehl ein (werden aufgefordert, das Kennwort für den Root Mariadb -Benutzer einzugeben):
[[E -Mail geschützt] ~]# Mysql -u root -p Passwort eingeben: Willkommen im Mariadb Monitor. Befehle enden mit; oder \ g. Ihre MariADB -Verbindungs -ID ist 2 Serverversion: 10.1.14-mariadb Mariadb Server Copyright (C) 2000, 2016, Oracle, Mariadb Corporation AB und andere. Geben Sie "Hilfe" ein; " oder '\ h' für Hilfe. Geben Sie '\ c' ein, um die aktuelle Eingabeanweisung zu löschen. Mariadb [(keine)]> Datenbank erstellen booksroredb; Abfrage OK, 1 Zeile betroffen (0.00 Sek.) Mariadb [(keine)]>
Sobald die Datenbank erstellt wurde, müssen wir mindestens zwei Tabellen darauf erstellen. Erforschen wir jedoch zunächst das Konzept der Datentypen.
Einführung von Mariadb -Datentypen
Wie wir bereits erklärt haben, Tische sind Datenbankobjekte, in denen wir anhaltende Informationen behalten werden. Jede Tabelle besteht aus zwei oder mehr Feldern (auch bekannt als Säulen) eines bestimmten Datentyps (der Art der Informationen), die ein solches Feld speichern kann.
Die häufigsten Datentypen in MariadB sind die folgenden (Sie können die vollständige Liste in der offiziellen Online -Dokumentation von Mariadb konsultieren):
Numerisch:
- Boolean betrachtet 0 als falsche und andere Werte als wahr.
- Tinyint, Deckt bei der Verwendung mit Signal den Bereich von -128 bis 127 ab, während der nicht signierte Bereich von 0 bis 255 beträgt.
- Smallint, Bei Verwendung mit Signed deckt den Bereich von -32768 bis 32767 ab. Der nicht signierte Bereich beträgt 0 bis 65535.
- Int, Deckt bei der Verwendung mit nicht signiertem Bereich den Bereich von 0 bis 4294967295 und -2147483648 bis 2147483647 ab, da sonst.
Notiz: In Tinyint, Smallint und INT wird der Standard unterschrieben.
Doppelt (m, d), Wo M ist die Gesamtzahl der Ziffern und D Ist die Anzahl der Ziffern nach dem Dezimalpunkt eine schwimmende Punktzahl doppelte Präzision dar. Wenn nicht angegeben ist, sind negative Werte nicht zulässig.
String:
- Varchar (m) repräsentiert eine Zeichenfolge variabler Länge, wobei M ist die maximal zulässige Säulenlänge in Bytes (theoretisch 65.535). In den meisten Fällen ist die Anzahl der Bytes mit der Anzahl der Zeichen identisch, mit Ausnahme einiger Zeichen, die bis zu 3 Bytes aufnehmen können. Zum Beispiel repräsentiert der spanische Buchstabe ñ einen Charakter, nimmt aber 2 Bytes auf.
- Text (m) repräsentiert eine Spalte mit einer maximalen Länge von 65.535 Zeichen. Wie es jedoch passiert Varchar (m), Die tatsächliche maximale Länge wird reduziert, wenn Multi-Byte-Zeichen gespeichert werden. Wenn M Es wird angegeben, die Spalte wird als der kleinste Typ erstellt, der eine solche Anzahl von Zeichen speichern kann.
- MediumText (m) Und Longtext (m) sind ähnlich wie Text (m), Nur dass die maximal zulässigen Längen 16.777.215 bzw. 4.294.967.295 Zeichen betragen.
Datum (und Uhrzeit:
- DATUM repräsentiert das Datum in Yjyy-mm-dd Format.
- ZEIT repräsentiert die Zeit in HH: MM: SS.SSS Format (Stunde, Minuten, Sekunden und Millisekunden).
- TERMINZEIT ist die Kombination von DATUM Und ZEIT In Yjyy-mm-dd hh: mm: ss Format.
- Zeitstempel wird verwendet, um in dem Moment zu definieren, in dem eine Zeile hinzugefügt oder aktualisiert wurde.
Nachdem Sie diese Datentypen überprüft haben, sind Sie in einer besseren Position, um festzustellen, welchen Datentyp Sie einer bestimmten Spalte in einer Tabelle zuweisen müssen.
Zum Beispiel kann der Name einer Person leicht in a passen Varchar (50), Während ein Blog -Beitrag eine benötigt TEXT Typ (wählen M gemäß Ihren spezifischen Bedürfnissen).
Erstellen von Tabellen mit primären und fremden Schlüsseln
Bevor wir in die Erstellung von Tabellen eintauchen, gibt es zwei grundlegende Konzepte zu relationalen Datenbanken, die wir überprüfen müssen: primär Und ausländisch Schlüssel.
A Primärschlüssel Enthält einen Wert, der in der Tabelle jede Zeile oder Aufzeichnung eindeutig identifiziert. Andererseits a Unbekannter Schlüssel wird verwendet, um eine Verbindung zwischen den Daten in zwei Tabellen zu erstellen und die Daten zu steuern, die in der Tabelle gespeichert werden können, in der sich der Fremdschlüssel befindet. Sowohl Primär- als auch Fremdschlüssel sind im Allgemeinen INTs.
Um zu veranschaulichen, verwenden wir die BookSeperedb
und erstellen Sie zwei genannte Tabellen Authorstbl
Und Bookstbl
folgendermaßen. Der NICHT NULL Die Einschränkung zeigt an, dass das zugehörige Feld einen anderen Wert als einen Wert erfordert NULL.
Auch, Auto_increment wird verwendet, um den Wert von durch einen zu erhöhen Int Primärschlüsselspalten Wenn ein neuer Datensatz in die Tabelle eingefügt wird.
Mariadb [(keine)]> Verwenden Sie buchstäbig; Mariadb [(keine)]> TABLE CREATE CREATRESTBL (Authorid int nicht null auto_increment, Authorname varchar (100), Primärschlüssel (Authorid)); Mariadb [(keine)]> Erstellen Sie Tabellenbuch erstellen (bookId int nicht null auto_increment, bookname varchar (100) nicht null, authorid int nicht null, bookPrice decimal (6,2) Nicht NULL, BookLastupdated Timestamp, bookiLean boolesche, primärer Schlüssel (BuchId), Fremd Key (Authorid) Referenzen Authorstbl (Authorid));Erstellen Sie MySQL -Tabellen mit primärem und fremden Schlüssel
Mariadb [(keine)]> Verwenden Sie buchstäbig; Datenbank geändert mariadb [bookStoredb]> Table authorstbl ( -> authorid int nicht null auto_increment, -> Authorname varchar (100), -> Primärschlüssel (authorid) ->); Abfrage OK, 0 Zeilen betroffen (0.05 Sek.) Mariadb [bookSeordb]> TABLE BOOKSTBL CREATE CREATE ( -> bookId int nicht null auto_increment, -> bookName varchar (100) NICHT NULL, -> Authorid int NICH , -> Primärschlüssel (bookID), -> Fremdschlüssel (Authorid) Referenzen Authorstbl (Authorid) ->); Abfrage OK, 0 Zeilen betroffen (0.05 Sek.) Mariadb [bookSeordb]>
Jetzt können wir fortfahren und Aufzeichnungen einfügen Authorstbl
Und Bookstbl
.
Auswählen, Einfügen, Aktualisieren und Löschen von Zeilen
Wir werden zuerst die bevölkern Authorstbl
Tisch. Warum? Weil wir Werte für haben müssen Authorid
Bevor Sie Aufzeichnungen in die einfügen Bookstbl.
Führen Sie die folgende Abfrage aus Ihrer Mariadb -Eingabeaufforderung aus:
Mariadb [booksRedb]> in Authorstbl (Authorname) Werte ('Agatha Christie'), ('Stephen King'), ('Paulo Coelho');
Danach werden wir alle Datensätze aus auswählen Authorstbl. Denken Sie daran, wir werden die brauchen Authorid für jeden Datensatz, um das zu erstellen EINFÜGUNG Abfrage für Bookstbl.
Wenn Sie jeweils einen Datensatz abrufen möchten, können Sie a verwenden WO Klausel, um eine Bedingung anzuzeigen, dass sich eine Reihe erfüllen muss, um zurückgegeben zu werden. Zum Beispiel,
Mariadb [BookSeordb]> Wählen Sie * von Authorstbl, wo Authorname = "Agatha Christie";
Alternativ können Sie alle Datensätze gleichzeitig auswählen:
Mariadb [BookSeordb]> Wählen Sie * aus dem Authorstbl;Wählen Sie in MySQL den Datensatz und Abfragen
Mariadb [BookSeordb]> Wählen Sie * von Authorstbl, wo Authorname = "Agatha Christie"; +----------+-----------------+ | Authorid | Authorname | +----------+------------------+| 1 | Agatha Christie | +----------+---------------------+1 Zeile in Set (0).00 Sek.) Mariadb [BookSeordb]> Wählen Sie * aus dem Authorstbl; +----------+-----------------+ | Authorid | Authorname | +----------+------------------+| 1 | Agatha Christie | | 2 | Stephen King | | 3 | Paulo Coelho | +----------+------------------+3 Zeilen in Set (0).00 Sek.) Mariadb [BookSeordb]>Wählen Sie eine Zeichenfolge in der MySQL -Datenbank aus und fragen Sie
Jetzt erstellen wir die EINFÜGUNG Abfrage für Bookstbl, Verwenden der entsprechenden Authorid den Autor jedes Buches entsprechen. Ein Wert von 1 In BookiSaceable zeigt an, dass das Buch auf Lager ist, 0 ansonsten:
Mariadb [BookSeordb]> Einfügen in die Buchsteber (BookName, Authorid, BookPrice, bookisArable) Werte ('Und dann gab es keine', 1, 14.95, 1), ('der Mann im braunen Anzug', 1, 23.99, 1), ('der Stand', 2, 35.99, 1), ('Pet Sematary', 2, 17.95, 0), ('The Green Mile', 2, 29.99, 1), ('The Alchemist', 3, 25, 1), ('von der Fluss Piedra I setzte mich hin und weinte', 3, 18.95, 0);Fügen Sie die Abfrage in die MySQL -Tabelle ein
Mariadb [BookSeordb]> In Bookstbl (BookName, Authorid, BookPrice, bookisArableable) -Werte einfügen ('und dann gab es keine', 1, 14.95, 1), -> ('Der Mann im braunen Anzug', 1, 23.99, 1), -> ('The Stand', 2, 35.99, 1), -> ('Pet Sematary', 2, 17.95, 0), -> ('The Green Mile', 2, 29.99, 1).95, 0); Abfrage OK, 7 Zeilen betroffen (0.03 Sek.) Aufzeichnungen: 7 Duplikate: 0 Warnungen: 0
Zu diesem Zeitpunkt werden wir a machen WÄHLEN Um die Aufzeichnungen in zu sehen in Bookstbl. Dann lass uns AKTUALISIEREN der Preis von "Der Alchemist" von Paulo Coelho Und WÄHLEN Dieser spezifische Datensatz erneut.
Beachten Sie, wie die BookLastupdated Feld zeigt jetzt einen anderen Wert. Wie wir bereits erklärten, a Zeitstempel Das Feld zeigt den Wert an, wenn der Datensatz eingefügt oder zuletzt geändert wurde.
Mariadb [BookSeordb]> Wählen Sie * aus bookstbl; Mariadb [BookSeordb]> UPDATE BOOKSTBL SET BOOKPRICE = 22.75 wobei bookId = 6; Mariadb [BookSeordb]> Wählen Sie * aus bookstbl, wo bookId = 6;Fügen Sie die Abfrage- und Aktualisierungstabelle in die MySQL -Datenbank ein
Mariadb [BookSeordb]> Wählen Sie * aus bookstbl; +--------+-----------------------------------------+----------+-----------+---------------------+-----------------+ | BookId | Buchname | Authorid | BookPrice | BookLastupdated | BookiSApleable | +--------+------------------------------------------------------------------------------------------------------------------------------------------------ -+----------+-----------+---------------------+--- --------------+ | 1 | Und dann gab es keine | 1 | 14.95 | 2016-10-01 23:31:41 | 1 | | 2 | Der Mann im braunen Anzug | 1 | 23.99 | 2016-10-01 23:31:41 | 1 | | 3 | Der Stand | 2 | 35.99 | 2016-10-01 23:31:41 | 1 | | 4 | Haustier -Sematary | 2 | 17.95 | 2016-10-01 23:31:41 | 0 | | 5 | Die grüne Meile | 2 | 29.99 | 2016-10-01 23:31:41 | 1 | | 6 | Der Alchemist | 3 | 25.00 | 2016-10-01 23:31:41 | 1 | | 7 | By the River Piedra setzte ich mich und weinte | 3 | 18.95 | 2016-10-01 23:31:41 | 0 | +--------+------------------------------------------------------------------------------------------------------------------------------------------------ -+----------+-----------+---------------------+--- --------------+ 7 Zeilen in Set (0.00 Sek.) Mariadb [BookSeordb]> UPDATE BOOKSTBL SET BOOKPRICE = 22.75 wobei bookId = 6; Abfrage OK, 1 Zeile betroffen (0.04 Sek.) Zeilen übereinstimmend: 1 geändert: 1 Warnungen: 0 Mariadb [bookSeuredB]> Wählen Sie * aus bookstbl, wo bookId = 6; +--------+---------------+----------+-----------+---------------------+-----------------+ | BookId | Buchname | Authorid | BookPrice | BookLastupdated | BookiSApleable | +--------+---------------+----------+-----------+-- --------------------+ ------------------+ | 6 | Der Alchemist | 3 | 22.75 | 2016-10-01 23:35:00 | 1 | +--------+---------------+----------+-----------+-- --------------------+ ---------------------+ 1 Zeile in Set (0).00 Sek.) Mariadb [BookSeordb]>Einfügen und aktualisieren Sie die Datenbanktabelle Datensatz
Obwohl wir es hier nicht tun, können Sie auch einen Datensatz löschen, wenn Sie nicht mehr verwendet werden. Angenommen, wir wollen löschen “Der Alchemist" aus Bookstbl.
Dazu werden wir die verwenden LÖSCHEN Aussage wie folgt:
Mariadb [BookSeordb]> Löschen aus bookstbl wobei bookId = 6;
Wie im Fall von AKTUALISIEREN, Es ist eine gute Idee, eine zu machen WÄHLEN Erstens, um die Aufzeichnungen anzuzeigen, die möglicherweise von der betroffen sein können LÖSCHEN.
Vergessen Sie auch nicht, das hinzuzufügen WO Klausel und ein Zustand (BookId = 6) So wählen Sie den zu beseitigen spezifischen Datensatz aus. Andernfalls führen Sie das Risiko aus, alle Zeilen in der Tabelle zu löschen!
Wenn Sie zwei (oder mehr) Felder verkettet möchten, können Sie die verwenden Concat Stellungnahme. Angenommen, wir möchten ein Ergebnissatz zurückgeben, das aus einem Feld mit dem Buchnamen und dem Autor in Form von "besteht"Der Alchemist (Paulo Coelho)Und eine andere Spalte mit dem Preis.
Dies erfordert a VERBINDEN zwischen Authorstbl Und Bookstbl auf dem gemeinsamen Feld, das von beiden Tabellen geteilt wird (Authorid):
Mariadb [BookSeordb]> Wählen Sie CONCAT (BookstBL.Buchname, '(', Authorstbl.Authorname, ')') als Beschreibung, BookstBl.BookPrice von Authorstbl treten Sie Bookstbl auf Authorstbl bei.Authorid = Bookstbl.Authorid;
Wie wir sehen können, Concat ermöglicht es uns, mehrere String -Ausdrücke beieinander zu beitreten, die von Commas getrennt sind. Sie werden auch festgestellt, dass wir den Alias gewählt haben Beschreibung die Ergebnismenge der Verkettung darzustellen.
Die Ausgabe der obigen Abfrage ist im folgenden Bild angezeigt:
Fragen Sie mehrere Felder in MySQL -Tabelle abMariadb [BookSeordb]> Wählen Sie CONCAT (BookstBL.Buchname, '(', Authorstbl.Authorname, ')') als Beschreibung, BookstBl.BookPrice von Authorstbl treten Sie Bookstbl auf Authorstbl bei.Authorid = Bookstbl.Authorid; +--------------------------------------------------------+-----------+ | Beschreibung | BookPrice | +------------------------------------------------- -------+ -----------+ | Und dann gab es keine (Agatha Christie) | 14.95 | | Der Mann im braunen Anzug (Agatha Christie) | 23.99 | | Der Stand (Stephen King) | 35.99 | | Haustier -Sematary (Stephen King) | 17.95 | | Die grüne Meile (Stephen King) | 29.99 | | Der Alchemist (Paulo Coelho) | 25.00 | | By the River Piedra Ich setzte mich hin und weinte (Paulo Coelho) | 18.95 | +------------------------------------------------- -------+ -----------+ 7 Zeilen in Set (0).00 Sek.)Fragen Sie mehrere Felder in der Datenbanktabelle ab
Erstellen Sie Benutzer, um auf die Datenbank booksRoredB zuzugreifen
Verwendung Wurzel Alle ausführen DML Operationen in einer Datenbank sind eine schlechte Idee. Um dies zu vermeiden, können wir eine neue erstellen Mariadb Benutzerkonto (wir nennen es es Bookstoruser) und alle notwendigen Berechtigungen zuweisen für BookSeperedb:
Mariadb [BookSeordb]> Benutzer erstellen [E -Mail geschützt] identifiziert durch 'deinPasswordhere'; Mariadb [BookSeordb]> Gewähren Sie alle Privilegien für buchstäbchen.* an [E -Mail geschützt]; Mariadb [BookSeordb]> Spülung Privilegien;Erstellen Sie einen neuen Datenbankbenutzer mit Berechtigungen
Mariadb [BookSeordb]> Benutzer erstellen [E -Mail geschützt] identifiziert von 'Tecmint'; Abfrage OK, 0 Zeilen betroffen (0.00 Sek.) Mariadb [BookSeordb]> Gewähren Sie alle Privilegien für buchstäbchen.* an [E -Mail geschützt]; Abfrage OK, 0 Zeilen betroffen (0.00 Sek.) Mariadb [BookSeordb]> Spülung Privilegien; Abfrage OK, 0 Zeilen betroffen (0.00 Sek.)
Wenn ein dedizierter, separater Benutzer für jede Datenbank ein dedizierter Benutzer ist.
Zusätzliche MySQL -Tipps
Um die zu beseitigen Mariadb Drang einschalten, den folgenden Befehl eingeben und drücken Eingeben:
Mariadb [BookSeordb]> \! klar
Um die Konfiguration einer bestimmten Tabelle zu inspizieren, sollten Sie:
Mariadb [BookSeordb]> Wählen Sie Spalten in [Tabellenname hier] aus;
Zum Beispiel,
Mariadb [BookSeordb]> Spalten in BookStbl anzeigen;Listen Sie Spalten in der Datenbanktabelle auf
Mariadb [BookSeordb]> Spalten in BookStbl anzeigen; +-----------------+--------------+------+-----+-------------------+-----------------------------+ | Feld | Typ | NULL | Schlüssel | Standard | Extra | +-----------------+--------------+------+-----+--- ----------------+ -----------------------------+ | BookId | int (11) | Nein | Pri | NULL | auto_increment | | Buchname | varchar (100) | Nein | | NULL | | | Authorid | int (11) | Nein | Mul | NULL | | | BookPrice | Dezimaler (6,2) | Nein | | NULL | | | BookLastupdated | Zeitstempel | Nein | | Current_timestamp | Auf Update current_timestamp | | BookiSApleable | Tinyint (1) | Ja | | NULL | | +-----------------+--------------+------+-----+--- ----------------+ ------------------------------+ 6 Zeilen in set (0.02 Sek.)Listen Sie Spalten in der Datenbanktabelle auf
Eine kurze Inspektion zeigt, dass die BookiSaceable Field gibt zu NULL Werte. Da wir das nicht zulassen wollen, werden wir uns ÄNDERN Die Tabelle wie folgt:
Mariadb [BookSeordb]> ALTER TABEL BOOKSTBL MODIFT BOOKISABLEINE BOOLEAN NICHT NULL;
(Fühlen Sie sich frei, die Spalten wieder zu zeigen - die hervorgehoben JA Im obigen Bild sollte jetzt ein sein NEIN).
Um alle Datenbanken auf Ihrem Server anzuzeigen, tun Sie schließlich:
Mariadb [BookSeordb]> Datenbanken anzeigen; ODER Mariadb [BookSeordb]> Showschemata;Listen Sie alle MySQL -Datenbanken auf
[[E -Mail geschützt] ~]# MySQL -U BookSeurer -p Passwort eingeben: Willkommen im Mariadb Monitor. Befehle enden mit; oder \ g. Ihre MariADB -Verbindungs -ID ist 3 Serverversion: 10.1.14-mariadb Mariadb Server Copyright (C) 2000, 2016, Oracle, Mariadb Corporation AB und andere. Geben Sie "Hilfe" ein; " oder '\ h' für Hilfe. Geben Sie '\ c' ein, um die aktuelle Eingabeanweisung zu löschen. Mariadb [BookSeordb]> Datenbanken anzeigen; +--------------------+ | Datenbank | + --------------------+ | BookSectoredb | | Information_schema | + --------------------+ 2 Zeilen in Set (0).00 Sek.) Mariadb [BookSeordb]> Showschemata; +--------------------+ | Datenbank | + --------------------+ | BookSectoredb | | Information_schema | + --------------------+ 2 Zeilen in Set (0).00 Sek.)
Das folgende Bild zeigt das Ergebnis des obigen Befehls nach dem Zugriff auf die Mariadb -Eingabeaufforderung als die Bookstoruser (Beachten Sie, wie dieses Konto keine Datenbanken als "sehen" kann BookSeperedb Und Information_schema (verfügbar für alle Benutzer):
Listen Sie alle MySQL -Datenbanken aufZusammenfassung
In diesem Artikel haben wir erklärt, wie man rennt DML Operationen und wie Sie eine Datenbank, Tabellen und engagierte Benutzer in einer MariADB -Datenbank erstellen. Darüber hinaus haben wir einige Tipps geteilt, die Ihr Leben als System- / Datenbankadministrator erleichtern können.
- MySQL -Datenbankverwaltung Teil - 1
- MySQL -Datenbankverwaltung Teil - 2
- MySQL Performance Tunning and Optimization - Teil 3
Wenn Sie Fragen zu diesem Artikel haben, zögern Sie nicht, es uns zu informieren! Fühlen Sie sich frei, das folgende Kommentarformular zu verwenden, um uns zu erreichen.
- « So erweitern/reduzieren Sie LVMs (logische Volumenverwaltung) unter Linux - Teil II
- CloudLayar - Ein kostenloser DNS -Schutz für Ihre Website »