Erkunden der MySQL-Architektur
MySQL ist eine relationale Datenbank, die auf dem SQL-Standard basiert. Auf dem Server werden Daten in Tabellen gespeichert, die aus Spalten und Zeilen bestehen. Clients können über Websites, Apps oder eine integrierte Entwicklerumgebung (IDE) wie MySQL Workbench oder dbForge auf die Serverdaten zugreifen. In den Beispielen dieses Moduls wird MySQL Workbench verwendet.
MySQL erlaubt die Verwendung verschiedener Speicher-Engines. Die Standardspeicher-Engine ist InnoDB, die einzige Speicher-Engine, die von Azure Database for MySQL unterstützt wird. Datendateien, einschließlich Datenbanken, Geschichten, Protokollen und Statusdateien, werden im Datenverzeichnis gespeichert. Sie können den Speicherort von Datendateien anzeigen, indem Sie Folgendes ausführen:
SELECT @@datadir;
Hinweis
Azure Database for MySQL bietet keinen Zugriff auf das zugrunde liegende Dateisystem. Sie können sehen, wo Datendateien gespeichert werden, aber nicht auf die tatsächlichen Dateien zugreifen, außer über die Datenbank.
MySQL speichert globale Parameter in einer Datei namens my.cnf. In Azure Database for MySQL können die meisten Serverkonfigurationsparameter im Azure-Portal verwaltet werden. Navigieren Sie zu Ihrem Azure Database for MySQL-Server, und wählen Sie Serverparameter aus. Alternativ können Sie die Azure CLI verwenden.
Abfragecache
Der Abfragecache war ein Feature von MySQL bis Version 5.1. In Version 5.7 war der Abfragecache veraltet und in Version 8.1. wurde er entfernt. Diese Änderung wurde vorgenommen, um die Leistung zu verbessern.
Client-/Serverprotokoll
Das MySQL-Client-/Serverprotokoll ist halbduplex, was bedeutet, dass es Daten senden oder Daten empfangen kann, aber nicht beides. Wenn der Client eine komplexe Abfrage sendet, muss der Server warten, bis die vollständige Abfrage empfangen wurde.
Clients senden eine Abfrage als ein Datenpaket. Die Eigenschaft max_allowed_packet definiert die maximale Größe für eine Abfrage, eine Zeichenfolge oder einen Parameter. Navigieren Sie im Azure-Portal zu Ihrem Azure Database for MySQL-Server, wählen Sie Serverparameter aus, und geben Sie in der Suche max_allowed_packet ein.
Wenn der Server einen großen Datensatz zurückgeben muss, wird der gesamte Datensatz zurückgegeben, bevor er auf neue Abfragen antwortet. Daher ist es wichtig, Abfragen zu schreiben, die das Resultset filtern, bevor der Server es sendet, sodass nur die erforderlichen Datensätze zurückgegeben werden.
Das MySQL-Client-/Serverprotokoll unterstützt SSL-Verbindungen (Secure Sockets Layer) zwischen Clientanwendungen und dem Datenbankserver, um Man-in-the-Middle-Angriffe zu verhindern. So konfigurieren Sie MySQL Workbench so, dass eine verschlüsselte Verbindung mit dem Azure Database for MySQL-Server erforderlich ist:
- Wählen Sie im oberen Menü die Option Datenbank aus.
- Wählen Sie Verbindungen verwalten aus, und bearbeiten Sie entweder eine vorhandene Verbindung, oder erstellen Sie eine neue Verbindung. Das Dialogfeld „Serververbindungen verwalten“ wird angezeigt.
- Wählen Sie unter Verbindung die Registerkarte SSL aus.
- Wählen Sie neben SSL verwenden die Option Erforderlich aus.
- Geben Sie neben SSL-Zertifizierungsstellendatei den Pfad zur Zertifizierungsstellendatei an.
Navigieren Sie im Azure-Portal zu Ihrem Azure Database for MySQL-Server, und wählen Sie im linken Menü Verbindungssicherheit aus. Unter SSL-Einstellungen kann die Einstellung SSL-Verbindung erzwingen auf AKTIVIERT oder DEAKTIVIERT eingestellt werden. Zudem können Sie die TLS-Mindestversion festlegen.
Der MySQL-Daemon
Der MySQL-Daemon, auch bekannt als MySQL-Server oder mysqld, ist ein Dienstprogramm, das den Zugriff auf die anderen MySQL-Komponenten verwaltet, einschließlich MySQL-Datenverzeichnis, mysqladmin und Abfrageoptimierer. Das Dienstprogramm mysqld wird mit dem Skript mysqld_safe gestartet. Dieses Skript wird im Hintergrund ausgeführt, wenn Sie ihren Azure Database for MySQL-Server starten oder neu starten.
Hinweis
Sie können Ihre Azure Database for MySQL-Instanz beenden, wenn sie nicht verwendet wird, und sie bei Bedarf neu starten. Verwenden Sie das Azure-Portal, Azure Cloud Shell, MySQL Workbench oder MySQL for Visual Studio, um den Server zu starten und zu beenden.
Der Dienst mysqld wird kontinuierlich ausgeführt, solange der Server ausgeführt wird. Wenn Sie Ihren Azure Database for MySQL-Server beenden, kann auf keine MySQL-Dienste zugegriffen werden, bis der Server neu gestartet wird.
Hinweis
Azure Database for MySQL ist ein Dienst und bietet keinen Zugriff auf einzelne Dateien wie den MySQL-Daemon.
Datentypen
MySQL unterstützt mehrere Kategorien von Datentypen:
- Numerische: Ganzzahl (INT), Kleine Ganzzahl, Dezimalzahl (DEC, FIXED), Numerische, Float, Real, Double Precision (DOUBLE), BIT
- Datum und Uhrzeit: Datum, Uhrzeit, DateTime, Zeitstempel, Jahr
- String: CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM und SET
- Raum: Geometrietyp
- JSON: Der native JSON-Datentyp wird seit Version 5.7 unterstützt.
In der Dokumentation zu den MySQL-Datentypen finden Sie Informationen darüber, welche Speicher-Engines welche Datentypen, Synonyme und das Aktualisierungsverhalten für bestimmte Datentypen unterstützen.
