MySQL unter Windows – Teil 2: Administration & Besonderheiten
Windows – eine Sonderlocke?
Ein MySQL-Server lässt sich unter Windows grundsätzlich auf die gleiche Art und Weise administrieren, wie es auch unter Unix/Linux der Fall ist. Dazu dient sowohl die Konfigurationsdatei des Servers (my.cnf) für statische Einstellungen, die beim Start gesetzt werden sollen, als auch die auto.cnf für persistente Änderungen zur Laufzeit des Servers.
Durch die auto.cnf kann wie im folgenden Beispiel gezeigt eine Änderung online durchgeführt werden, die auch bei einem Neustart des MySQL-Servers Bestand hat. Voraussetzung ist hierfür, dass die Variable PERSISTED_GLOBALS_LOAD aktiviert ist:
+----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | max_connections | 151 | | max_user_connections | 0 | | mysqlx_max_connections | 100 | +----------------------------------+-------+ 3 rows in set, 1 warning (0.08 sec) mysql> show variables like 'persist%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | persist_only_admin_x509_subject | | | persisted_globals_load | ON | +----------------------------------+-------+ 2 rows in set, 1 warning (0.00 sec) mysql> set persist max_connections = 250; Query OK, 0 rows affected (0.04 sec) mysql> show variables like '%connections%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | max_connections | 250 | | max_user_connections | 0 | | mysqlx_max_connections | 100 | +----------------------------------+-------+ 3 rows in set, 1 warning (0.00 sec) mysql> show variables like '%connections%'; ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> show variables like '%connections%'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 8 Current database: sakila +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | max_connections | 250 | | max_user_connections | 0 | | mysqlx_max_connections | 100 | +----------------------------------+-------+ 3 rows in set, 1 warning (0.14 sec)
Rekonfiguration mittels GUi
Aus dem ersten Teil dieser Reihe ist bereits der MySQL-Installer bekannt, welcher im Rahmen der Installation der Software gewisse Konfigurationsmöglichkeiten anbietet. Auf diese Möglichkeit lässt sich auch nach der erstmaligen Installation zurückgreifen, indem wir auf „Reconfigure" in der entsprechenden Reihe des MySQL-Servers klicken:
Named Pipe – auf jeden Fall eine Sonderlocke
mysql> show variables like 'named_pipe'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | named_pipe | OFF | +---------------+-------+ 1 row in set, 1 warning (0.00 sec)
enable-named-pipe socket=MySQL
C:\Program Files\MySQL\mysql-8.0.19-winx64\bin>mysql -uroot -proot --socket=MySQL --protocol=pipe mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 8.0.19 MySQL Community Server - GPL Copyright (c) 2000, 2020, 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 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Durch die Angabe der Named Pipe (--socket) und --protocol=pipe kann ich eine Verbindung über diese Named Pipe realisieren und gehe in diesem Moment nicht über das Netzwerk. Wie auch bei einer Socket-Verbindung unter Unix/Linux ist dies eine gute Alternative, wenn Applikation und Datenbank auf einem Server laufen. Außerdem ist der MySQL-Server zusätzlich vor Angriffen von außen geschützt, wenn man sich für die ausschließliche Nutzung von Named Pipes entscheidet.
lower_case_table_names – eine weitere Sonderlocke
Mit Hilfe des Parameters lower_case_table_names lassen sich Tabellen in MySQL case-sensitiv erstellen.
Dieser Parameter kann auf 0, 1 oder 2 gesetzt werden, wobei 0 die Einstellungen des Betriebssystems verwendet, Lookups bei Indizes o.ä. aber stets case-sensitiv ausgeführt werden. Auf Betriebssystemen mit einem case-insensitiven Filesystem wie Windows oder MacOS sollte dieser Parameter daher nicht auf 0 gesetzt werden.
Ein Setzen von lower_case_table_names auf 1 bewirkt, dass alle Tabellen auf dem Filesystem in lowercase erstellt werden, wohingegen ein Wert von 2 case-sensitiv speichert. In diesem Falle werden Lookups stets mit lowercase durchgeführt, weshalb es im Gegensatz zu einem Wert von 0 unter Windows nicht zu Problemen führt.
Ein Beispiel:
lower_case_table_names | OS case-sensitiv | Name beim Erstellen | Name auf Festplatte | Lookup |
0 | Ja | „TesT123" | „TesT123" | „TesT123" vs. „TesT123" |
0 | Nein | „TesT123" | „test123" | „test123" vs. „TesT123" |
1 | Ja | „TesT123" | „test123" | „test123" vs. „test123" |
1 | Nein | „TesT123" | „test123" | „test123" vs. „test123" |
2 | Ja | „TesT123" | „TesT123" | „test123" vs. „test123" |
2 | Nein | „TesT123" | „TesT123" | „test123" vs. „test123" |
Sie haben Interesse an einer Weiterbildung oder Fragen zum Thema MySQL? Sprechen Sie uns an oder besuchen Sie einen unserer Kurse aus unserem Seminarshop:
Zu unseren MySQL Seminaren
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare