MySQL ist ein fester Bestandteil und neben PostgreqSQL eines der am verbreitesten Datenbanksysteme im Bereich Server Anwendungen. Für lokale Anwendungen wird dagegen auf SQLite3 gesetzt. Das relationale Datenbanksystem wird in der Regel bei kleineneren Anwendungen angewandt und begleitet uns sogar im täglichen Leben. Dadurch das SQLite3 eine Programmbibliothek mit integriertem Datenbanksystem ist, läuft SQLite3 auf jedem System. Sogar unsere Smartphones, Smart TVs und Webbrowser verwenden SQLite.
mysql-to-sqlite3
Wer von MySQL zu SQLite3 wechseln möchte, braucht die Datenbank nicht in mühevoller Handarbeit exportieren. Mit dem Konsolenprogramm mysql-to-sqlite3 kann jeder seine MySQL Datenbank zu einer SQLite3 Datenbank exportieren.
Das in python geschriebene Tool ist ein einfache anzuwendenes MySQL Konvertierungsprogramm. Mit nur einem Aufruf lässt sich damit jede MySQL Datenbank superschnell in einer SQLite3 Datenbank exportieren.
Die Installation
Installiert werden muss mysql-to-sqlite3 über das Paketverwaltungsprogramm für Python-Pakete pip auf dem Server, auf dem auch die MySQL Datenbank installiert ist. Übrigens: Die Paketverwaltung kann auf jedem System installiert werden, auf dem auch python installiert ist.
Wer pip noch nicht installiert hat, muss zuerst die python Paketverwaltung installieren:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
Das Konvertierungsprogramm mysql-to-sqlite3 wird über pip installiert:
pip install mysql-to-sqlite3
Nachdem die Installtion abgeschlossen ist, kann das Tool auch schon ausgeführt werden. Gebe dazu auf der Konsole mysqltosqlite3 --help
ein. In der Ausgabe stehen alle verfügbaren Argumente:
nico@localhost:/home/nico/# mysqltosqlite3 --help
Usage: ` [OPTIONS]
p
Transfer MySQL to SQLite using the provided CLI options.
Options:
-f, --sqlite-file PATH SQLite3 database file [required]
-d, --mysql-database TEXT MySQL database name [required]
-u, --mysql-user TEXT MySQL user [required]
-p, --mysql-password TEXT MySQL password
-t, --mysql-tables TEXT Transfer only these specific tables (space
separated table names). Implies --without-
foreign-keys which inhibits the transfer of
foreign keys.
-X, --without-foreign-keys Do not transfer foreign keys.
-h, --mysql-host TEXT MySQL host. Defaults to localhost.
-P, --mysql-port INTEGER MySQL port. Defaults to 3306.
-c, --chunk INTEGER Chunk reading/writing SQL records
-l, --log-file PATH Log file
-V, --vacuum Use the VACUUM command to rebuild the SQLite
database file, repacking it into a minimal
amount of disk space
--use-buffered-cursors Use MySQLCursorBuffered for reading the MySQL
database. This can be useful in situations where
multiple queries, with small result sets, need
to be combined or computed with each other.
--help Show this message and exit.
Zum Exportieren der MySQL Datenbank muss mysqltosqlite3
mit Angaben zur Datenbank aufgerufen werden:
- -f Zieldatei
- -d Datenbankname
- -u Datenbank Benutzer
- -p Datenbank Passwort
Der Befehl zum Exportieren sieht in etwa so aus:
mysqltosqlite3 -f exportdatei.db -d datenbank -u benutzer -p Ein.Passwort123
Nach erfolgreichem Export befindet sich Datei unser dem in Argument -f
Angegebenen Ziel.
nico@localhost:/home/nico/# ll
-rw-r--r-- 1 root root 99590144 Jun 27 10:05 datenbank.db
SQLite3 Dateien lokal bearbeiten
Zum Ansehen und Bearbeiten von SQLite3 Dateien verwende ich gerne DBeaver.io. Das kostenlose Datenbank Tool ist Open Source und unterstützt die meisten SQL Treiber.
Leave a Reply