---
title: "MariaDB naar SQLite migreren in je browser"
description: "Migreer een MariaDB-database naar SQLite: zet de dump om naar een script met dezelfde tabellen, sleutels, sequences en data, en een rapport van elke wijziging."
canonical: https://intosql.com/nl/mariadb-naar-sqlite
last_updated: 2026-10-15
---

# MariaDB naar SQLite migreren in je browser

Zet een dump van mariadb-dump, mysqldump, phpMyAdmin of Adminer neer, als .sql of .sql.gz, en download een SQLite-script met dezelfde tabellen, sleutels, indexen en data. Elke waarde die SQLite niet ongewijzigd kan bevatten, en elk object dat het niet overneemt, staat in het rapport.

[Migratiehandleiding MariaDB naar SQLite](https://intosql.com/docs/migrations/mariadb-to-sqlite)

[Datatypen van MariaDB naar SQLite](https://intosql.com/docs/types/mariadb-to-sqlite)

## Wat er verandert van MariaDB naar SQLite

Elke rij is een regel die de converter toepast, met de rapportregel die hij schrijft als de regel iets in je data verandert.

| In MariaDB | In SQLite | Rapportregel |
| --- | --- | --- |
| TINYINT(1), BOOL | INTEGER met de waarden ongewijzigd |  |
| UNSIGNED integers | INTEGER met een CHECK dat het niet negatief is; BIGINT UNSIGNED met waarden boven 2^63-1 wordt TEXT | `unsigned_widened` |
| ZEROFILL and display widths | weggelaten | `zerofill_dropped` |
| FLOAT(M,D) | REAL, zonder de schaal | `float_scale_dropped` |
| DECIMAL(p,s) | DECIMAL(p,s) tot 15 cijfers; daarboven TEXT | `decimal_as_text` |
| BIT(1), BIT(n) | INTEGER met de waarde van de bits; BIT(64) als TEXT-cijfers |  |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | NULL | `invalid_date_null` |
| NOT NULL columns with values that become NULL | NOT NULL weggelaten | `not_null_relaxed` |
| DEFAULT '0000-00-00' | geen standaardwaarde | `zero_date_default` |
| TIME | TIME-tekst zoals MySQL hem schrijft, inclusief duren |  |
| YEAR | INTEGER met een CHECK op het bereik |  |
| CHAR(n), VARCHAR(n) | VARCHAR(n), niet afgedwongen |  |
| DATETIME | DATETIME als ISO 8601-tekst |  |
| TIMESTAMP | TIMESTAMP als ISO 8601-tekst in UTC; de zone die de dump vermeldt, UTC als die er geen vermeldt | `timestamp_zone_assumed` |
| ENUM | TEXT met een CHECK op de waarden |  |
| ENUM holding '' (MySQL's error value) | de lege waarde, toegestaan door de check | `enum_invalid_value` |
| ENUM holding values outside its list | geen CHECK | `enum_check_skipped` |
| SET | TEXT zoals MySQL het schrijft ('a,b') |  |
| JSON | TEXT |  |
| NUL bytes in text | behouden |  |
| text that isn't valid in its character set | de foute bytes als het vervangingsteken | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | ongewijzigd gekopieerd | `mojibake_suspected` |
| AUTO_INCREMENT | INTEGER PRIMARY KEY AUTOINCREMENT, met de teller voorbij de gekopieerde id's |  |
| AUTO_INCREMENT on part of a key or outside one | INTEGER zonder teller | `identity_without_counter` |
| ON UPDATE CURRENT_TIMESTAMP | een AFTER UPDATE-trigger | `on_update_trigger` |
| generated columns | GENERATED ALWAYS AS, VIRTUAL of STORED zoals in de bron |  |
| generated columns with functions SQLite lacks | een gewone kolom | `generated_not_translated` |
| INVISIBLE columns | gewone kolommen | `invisible_column` |
| CHECK constraints | vertaald, inline in CREATE TABLE |  |
| CHECK constraints with functions SQLite lacks | niet aangemaakt | `check_skipped` |
| CHECK ... NOT ENFORCED | niet aangemaakt | `check_not_enforced` |
| defaults with functions SQLite lacks | geen standaardwaarde | `default_not_translated` |
| keys and indexes on a prefix, c(20) | een index op substr(c, 1, 20) | `prefix_unique` |
| FULLTEXT indexes | niet aangemaakt | `fulltext_not_created` |
| SPATIAL indexes | niet aangemaakt | `spatial_index_not_created` |
| functional indexes SQLite can't write | niet aangemaakt | `index_skipped` |
| foreign keys | in CREATE TABLE, ongecontroleerd geladen, daarna opgesomd door PRAGMA foreign_key_check |  |
| foreign keys to columns without a unique key | niet aangemaakt | `foreign_key_skipped` |
| table, index and column names | zoals geschreven; hernoemd als ze alleen in hoofdletters verschillen of een indexnaam herhaald wordt | `identifier_renamed` |
| GEOMETRY, POINT, POLYGON... | WKB in een BLOB | `geometry_as_blob` |
| INET4, INET6, UUID (MariaDB) | TEXT |  |
| BINARY, VARBINARY, BLOB | BLOB |  |
| PARTITION BY | één tabel | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | een tabel met de huidige rijen | `system_versioning_dropped` |
| MyISAM, MEMORY and other engines | een gewone tabel | `engine_dropped` |
| dumps of several databases | één bestand, elke tabel met de naam van zijn database ervoor | `databases_merged` |
| views, triggers, procedures, functions and events | vermeld in het rapport | `not_converted_objects` |
| dumps without CREATE TABLE | typen afgeleid uit de waarden | `no_schema` |
| geometries in a dump without CREATE TABLE | WKB in een BLOB | `geometry_as_blob` |
| _ci collations | exacte vergelijking | `case_insensitive_collation` |
| SET NAMES utf8 from utf8mb4 tables | geconverteerd, met een waarschuwing | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | gelezen als Latin-1 (Windows-1252) | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | gelezen als UTF-8, met een waarschuwing | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | geëvalueerd |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | de standaardwaarde van de kolom | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | gewone rijen | `replace_as_insert` |
| types IntoSQL doesn't know | TEXT | `unknown_type` |
| values that don't fit their column | NULL | `invalid_value_null` |
| unreadable geometries | NULL | `bad_geometry` |
| CREATE SEQUENCE (MariaDB) | niet aangemaakt | `sequence_not_converted` |
| VECTOR(n) (MariaDB 11.7+) | TEXT met de floats als JSON-array | `type_replaced` |

## Het script in SQLite laden

Het script maakt de tabellen aan, kopieert de rijen en voegt daarna sleutels, indexen en refererende sleutels toe, zodat het snel laadt en bij de eerste fout stopt.

```shell
sqlite3 -bail mydb.sqlite < mariadb.sqlite.sql
```

Refererende sleutels worden in elke tabel gedeclareerd en de rijen laden met de controle op refererende sleutels uit. Daarna somt het script elke rij op die naar een niet-bestaande rij verwijst, in plaats van halverwege te mislukken.

Laad een grote dump in een nieuw bestand op een lokale schijf. Het script laadt alles in één transactie met synchronisatie uit, dus het draait op schijfsnelheid, en een laadactie die halverwege stopt, laat geen halve tabellen achter.

De opdrachtregel laadt het bestand rechtstreeks in een SQLite-database, zonder een script te schrijven. Dat is gratis.

## Een dump van MariaDB maken voor het beste resultaat

De converter leest wat de dump bevat. Met deze opties blijft er meer van je data in staan:

- --default-character-set=utf8mb4 behoudt emoji en andere 4-bytestekens, die een utf8mb3-dump kwijtraakt voordat de converter hem ziet.
- --hex-blob schrijft binaire kolommen en VECTOR-waarden als hexadecimaal, wat kopiëren tussen systemen overleeft.
- --routines --triggers --events voegen die objecten aan de dump toe, zodat het rapport ze kan vermelden.

## Wat niet wordt geconverteerd

Weergaven, triggers, opgeslagen procedures, functies en gebeurtenissen zijn geschreven in de eigen taal van MariaDB. Ze staan op naam in het rapport en worden nooit stilletjes weggelaten, zodat je ze kunt herschrijven voor SQLite.

## Vragen over MariaDB naar SQLite

### Wordt mijn dump geüpload?

Nee. De converter draait in je browser en leest de dump in delen van je schijf, dus hij verlaat je computer nooit. De desktopapp en de opdrachtregel converteren ook op je computer.

### Hoe groot mag de dump zijn?

De converter houdt nooit de hele dump in het geheugen: hij leest het bestand twee keer, in bereiken, en schrijft het script gaandeweg. Dumps van meerdere gigabytes worden geconverteerd in de browser, in de desktopapp en met de opdrachtregel.

### Van welke MariaDB-versies kan de dump komen?

Dumps van mariadb-dump en mysqldump op MariaDB 10.3 tot en met 12, met één INSERT per tabel of één per rij. Elke testdump komt van MariaDB 10.11, 11.4 en 11.8 en wordt cel voor cel met zijn bron vergeleken.

### Blijven UUID-, INET6-, JSON- en VECTOR-kolommen behouden?

UUID- en INET-kolommen worden text, JSON text en VECTOR een JSON-array van zijn floats. Nuldatums worden NULL en het rapport telt ze.

### Blijven AUTO_INCREMENT-waarden en sequences behouden?

Een AUTO_INCREMENT-kolom die de hele primaire sleutel van de tabel is, wordt INTEGER PRIMARY KEY AUTOINCREMENT en gaat verder na het hoogste id. SQLite heeft geen sequences, dus die worden gemeld.

### En opgeslagen procedures en triggers?

Ze staan op naam in het rapport en worden niet geconverteerd, omdat elke database ze in een eigen taal schrijft.

### Op welke SQLite-versies laadt het script?

SQLite 3.31 en later. Elke testdump laadt op 3.31 en 3.54 en stopt bij de eerste fout als er iets misgaat.

## Vanuit MariaDB

- [MariaDB naar PostgreSQL](https://intosql.com/nl/mariadb-naar-postgresql)
- [MariaDB naar MySQL](https://intosql.com/nl/mariadb-naar-mysql)
- [MariaDB naar MariaDB](https://intosql.com/nl/mariadb-naar-mariadb)
- [MariaDB naar SQL Server](https://intosql.com/nl/mariadb-naar-sql-server)
- [MariaDB naar Oracle](https://intosql.com/nl/mariadb-naar-oracle)

## Naar SQLite

- [MySQL naar SQLite](https://intosql.com/nl/mysql-naar-sqlite)
- [PostgreSQL naar SQLite](https://intosql.com/nl/postgresql-naar-sqlite)
- [SQL Server naar SQLite](https://intosql.com/nl/sql-server-naar-sqlite)
- [SQLite naar SQLite](https://intosql.com/nl/sqlite-naar-sqlite)
- [Oracle naar SQLite](https://intosql.com/nl/oracle-naar-sqlite)

## Handleiding en elke combinatie

- [SQLite naar MariaDB](https://intosql.com/nl/sqlite-naar-mariadb)
- [Migratiehandleiding MariaDB naar SQLite](https://intosql.com/docs/migrations/mariadb-to-sqlite)
- [Datatypen van MariaDB naar SQLite](https://intosql.com/docs/types/mariadb-to-sqlite)
- [Elke databasecombinatie](https://intosql.com/nl/databasemigratie)
