Foto: pixabay ervine95

MariaDB als Portable Installation unter Windows

aktu­al­isiert: 16-09-2022

Um Mari­aDB — ein MySQL Clone — unter Win­dows 10 portable zu instal­lieren, gehen Sie wie fol­gt vor:

  1. Unter der Web­seite von Mari­aDB wählen Sie die entsprechende Ver­sion aus.
    Stand Sep­tem­ber 2022 ist dies die Ver­sion 10.9.2.
  2. Wählen Sie dann das ZIP-Paket “Win­dows x86_64” aus und laden Sie es herunter.
    Dateiname mariadb-10.9.2-winx64.zip
    Soll­ten Sie keine portable Ver­sion instal­lieren wollen, so kön­nen Sie auch die MSI-Datei ver­wen­den, um Mari­aDB über den Win­dows-Installer zu installieren.
  3. Für das weit­ere Vorge­hen, haben wir für die Pro­gramme das Verze­ich­nis C:\progs für die Instal­la­tion gewählt.
  4. Ent­pack­en Sie nun das ZIP-Archiv in dieses Verze­ich­nis. Danach benen­nen Sie das Verze­ich­nis von mariadb-10.9.2-winx64 nach mariadb um.
  5. Es hat sich als sin­nvoll erwiesen, Mari­aDB per Skript zu starten (Dateiname mysql_start.bat):
    @echo off
    %~d0
    cd %~dp0mariadb
    echo MySQL is starting
    
    set DIR=%~dp0mariadb
    set DATA=%DIR%\data
    set PATH=%DIR%\bin;%PATH%
    
    if not exist %DATA% ( 
    	echo Creating the database 
    	mysql_install_db 
    	echo --------------------------- 
    ) 
    
    start %~dp0mysql_cli.bat
    bin\mysqld --standalone --console
    rem pause
    

    Was macht das Skript?

    • Mit @echo off wird die Aus­gabe der Befehle ausgeschaltet.
    • Das Kürzel %~d0 ste­ht für das aktuelle Laufw­erk, in dem das Skript ges­tartet wor­den ist, hier also Laufw­erk c: Mit  %~dp0 wird das aktuelle Laufw­erk mit Pfad ver­wen­det, hier also c:\progs
    • Im näch­sten Schritt wird eine Vari­able DIR definiert, die fes­tlegt, in welchem Verze­ich­nis sich Mari­aDB befind­et. Haben Sie die Dateien in ein anderes Verze­ich­nis kopiert, so muss das Verze­ich­nis hier entsprechend angepasst werden.
    • Mit der Vari­ablen DATA wird fest­gelegt, wo Mari­aDB die Daten­banken speichert.
    • Anschließend wird der Such­path PATH fest­gelegt, so dass beim Aufruf auch die Pro­gramme im entsprechen­den Verze­ich­nis gefun­den werden.
    • Da beim Ent­pack­en der ZIP-Datei kein data-Verze­ich­nis angelegt wird, wird nun über­prüft, ob ein solch­es vorhan­den ist. Wenn nicht, wird mit dem Befehl mysql_install_db die Daten­bank angelegt. Dies muss nur beim ersten Aufruf erfol­gen. Ist das Verze­ich­nis datavorhan­den, so ist dies nicht notwendig.
    • Damit zusät­zlich auch eine Eingabeauf­forderung ges­tartet wird, damit man direkt mit dem Client arbeit­en kann, wird das Skript mysql_cli.bat in einem eige­nen Eingabefen­ster gestartet.
    • Nun wird der eigentliche Serv­er ges­tartet. Die Datei hat bei Mari­aDB und MySQL den sel­ben Namen.
    • Der Befehl pause ist auskom­men­tiert. Diese sollte geän­dert wer­den, wenn der Serv­er nicht kor­rekt startet, so dass man die Fehler­mel­dun­gen betra­cht­en kann.
  6. mysql_cli.bat
    @echo off
    %~d0
    cd \
    set PATH=%~dp0mariadb\bin;%PATH%
    cmd
    
  7. mysql_stop.bat
    @echo off
    %~d0
    cd %~dp0mariadb
    echo Mysql shutdowm ...
    %~dp0mariadb\bin\mysqladmin.exe -u root shutdown
  8. Kopieren Sie nun die drei Skripte in das Verze­ich­nis c:\progs
    Download der Skripte als ZIP-Datei
  9. Starten Sie nun den Serv­er, indem Sie das Skript mysql_start.bat aufrufen. Startet der Serv­er nicht kor­rekt, so aktivieren Sie den Befehl pause, wie oben beschrieben und suchen entsprechende Fehlermeldungen.
    Je nach­dem, wie ihre Win­dows-Fire­wall eingestellt ist, kann es sein, dass diese eine Freiga­be ver­langt, da Mari­aDB den Port 3306 ver­wen­den will. Ihr IT-Lehrer informiert sie genauer über die Funk­tion­sweise der Fire­wall und deren Konfiguration.Die Aus­gabe in der Eingabeauf­forderung sieht in etwa so aus:
  10. Rufen Sie nun in der Eingabeauf­forderung (ges­tartet mit mysql_cli.bat) den Client auf und lassen Sie sich mit dem Befehl show databases; alle Daten­banken anzeigen.
    U:\>mysql -u root
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 3
    Server version: 10.9.2-MariaDB mariadb.org binary distribution
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.001 sec)
  11. Wichtig!
    Been­den sie immer die Daten­bank sauber (mit Aufruf von mysql_stop.bat) und führen Sie einen shut­down durch, da es son­st zu einem Daten­ver­lust kom­men kann!

Zeichenkodierung festlegen

Damit serv­er- und client­seit­ig jew­eils UTF‑8 als Encod­ing ver­wen­det wird, muss die Kon­fig­u­ra­tions­datei my.ini (im data Verze­ich­nis) erweit­ert werden.

[mysqld]
datadir=U:/progs/mariadb/data
default_storage_engine=innodb
character-set-server=utf8
[client]
plugin-dir=U:\progs\mariadb/lib/plugin
default-character-set=utf8

Status überprüfen

MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.9.2-MariaDB, for Win64 (AMD64)

Connection id:          3
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.9.2-MariaDB mariadb.org binary distribution
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8mb3
Db     characterset:    utf8mb3
Client characterset:    utf8mb3
Conn.  characterset:    utf8mb3
TCP port:               3306
Uptime:                 9 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.444
--------------

Passend dazu: Unter­richt­sein­heit Datenbank

Kopf­bild: pix­abay ervine95

CC BY-NC-ND