---
title: "Migrare MariaDB a MySQL nel browser"
description: "Migra un database MariaDB a MySQL: converti il suo dump in uno script con le stesse tabelle, chiavi, sequenze e dati, e un report di ogni modifica."
canonical: https://intosql.com/it/mariadb-in-mysql
last_updated: 2026-10-15
---

# Migrare MariaDB a MySQL nel browser

Trascina un dump di mariadb-dump, mysqldump, phpMyAdmin o Adminer, in .sql o .sql.gz, e scarica uno script MySQL con le stesse tabelle, chiavi, indici e dati. Ogni valore che MySQL non può contenere così com'è, e ogni oggetto che non supporta, è elencato nel report.

[Guida alla migrazione da MariaDB a MySQL](https://intosql.com/docs/migrations/mariadb-to-mysql)

[Tipi di dati da MariaDB a MySQL](https://intosql.com/docs/types/mariadb-to-mysql)

## Cosa cambia da MariaDB a MySQL

Ogni riga è una regola che il convertitore applica, con la riga del report che scrive quando la regola cambia qualcosa nei tuoi dati.

| In MariaDB | In MySQL | Riga del report |
| --- | --- | --- |
| utf8mb4_0900_* and utf8mb4_uca1400_* collations | utf8mb4_unicode_520_ci (utf8mb4_bin per quelle binarie) | `collation_replaced` |
| zero, partial or impossible dates (0000-00-00, 2024-02-30) | mantenuto |  |
| TIME | TIME, durate incluse |  |
| TINYINT(1), BOOL | TINYINT(1) |  |
| UNSIGNED and ZEROFILL | mantenuto |  |
| ENUM and SET, the '' error value included | mantenuto |  |
| JSON | JSON |  |
| NUL bytes in text | mantenuto |  |
| AUTO_INCREMENT | AUTO_INCREMENT con il contatore della tabella |  |
| MyISAM AUTO_INCREMENT on the second column of a key, in a table that isn't MyISAM in the dump | un indice sulla colonna e un solo contatore per la tabella | `myisam_group_autoincrement` |
| ON UPDATE CURRENT_TIMESTAMP | mantenuto |  |
| generated columns | VIRTUAL o STORED come nella sorgente |  |
| generated columns with functions IntoSQL doesn't read | una colonna semplice | `generated_not_translated` |
| INVISIBLE columns | colonne normali | `invisible_column` |
| CHECK constraints | mantenuti (MySQL 5.7 li analizza e li ignora) |  |
| CHECK constraints with functions IntoSQL doesn't read | non creato | `check_skipped` |
| CHECK ... NOT ENFORCED | non creati | `check_not_enforced` |
| expression defaults, and defaults on TEXT, BLOB, JSON and GEOMETRY | nessun valore predefinito | `default_not_translated` |
| functional indexes, KEY ((expr)) | non creato | `index_skipped` |
| keys and indexes on a prefix, c(20) | mantenuto |  |
| FULLTEXT indexes | mantenuto |  |
| SPATIAL indexes | mantenuto |  |
| foreign keys | mantenute, caricate con FOREIGN_KEY_CHECKS=0 |  |
| GEOMETRY, POINT, POLYGON... | mantenuto, con lo SRID di ogni valore |  |
| INET4, INET6, UUID (MariaDB) | varchar(15), varchar(39), char(36) | `type_replaced` |
| BINARY, VARBINARY, BLOB | mantenuto |  |
| PARTITION BY | una sola tabella | `partitions_dropped` |
| WITH SYSTEM VERSIONING (MariaDB) | una tabella con le righe attuali | `system_versioning_dropped` |
| Aria, ColumnStore, CONNECT, Spider, RocksDB (MariaDB) | InnoDB | `engine_dropped` |
| CREATE SEQUENCE (MariaDB) | non creato | `sequence_not_converted` |
| views, triggers, procedures, functions and events | elencati nel report | `not_converted_objects` |
| NOT NULL columns with values that become NULL | NOT NULL rimosso | `not_null_relaxed` |
| text that isn't valid in its character set | i byte errati come carattere di sostituzione | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | copiato così com'è | `mojibake_suspected` |
| dumps without CREATE TABLE | tipi ricavati dai valori | `no_schema` |
| geometries in a dump without CREATE TABLE | GEOMETRY |  |
| SET NAMES utf8 from utf8mb4 tables | convertito, con un avviso | `dump_lost_four_byte_chars` |
| dumps without SET NAMES whose text isn't UTF-8 | letto come Latin-1 (Windows-1252) | `charset_guessed` |
| sjis, cp932, gbk, big5 dumps | letto come UTF-8, con un avviso | `unsupported_charset` |
| UNHEX('..'), CONVERT(b'..', UNSIGNED), CONVERT(".." USING x), ST_GeomFromText('..') in rows | valutate |  |
| other expressions in rows | NULL | `expression_value` |
| DEFAULT in VALUES | il valore predefinito della colonna | `default_keyword_filled` |
| DEFAULT in VALUES without a literal default | NULL | `default_keyword_null` |
| REPLACE and INSERT IGNORE | righe semplici | `replace_as_insert` |
| types IntoSQL doesn't know | LONGBLOB | `unknown_type` |
| values that don't fit their column | NULL | `invalid_value_null` |
| unreadable geometries | NULL | `bad_geometry` |
| TIMESTAMP | mantenuto, caricato nel fuso orario indicato dal dump |  |
| VECTOR(n) (MariaDB 11.7+) | json con i float come array | `type_replaced` |

## Carica lo script in MySQL

Lo script crea le tabelle, copia le righe, poi aggiunge chiavi, indici e chiavi esterne, così si carica in fretta e si ferma al primo errore.

```shell
mysql --default-character-set=utf8mb4 mydb < mariadb.mysql.sql
```

Le chiavi esterne vengono create come le dichiara il dump, con FOREIGN_KEY_CHECKS=0 mentre le righe si caricano, così una riga che punta a una riga mancante non ferma il caricamento.

Per un dump grande, esegui il client sulla stessa macchina del server, e aumenta max_allowed_packet se una singola riga è molto grande.

IntoSQL Pro carica il file direttamente in MySQL dall'app desktop o dalla riga di comando, senza scrivere uno script.

## Fai il dump di MariaDB per il miglior risultato

Il convertitore legge ciò che il dump contiene. Con queste opzioni il dump conserva più dei tuoi dati:

- --default-character-set=utf8mb4 conserva emoji e altri caratteri a 4 byte, che un dump utf8mb3 perde prima che il convertitore lo veda.
- --hex-blob scrive le colonne binarie e i valori VECTOR in esadecimale, che resiste alla copia tra sistemi diversi.
- --routines --triggers --events aggiungono quegli oggetti al dump, così il report può elencarli.

## Cosa non viene convertito

Viste, trigger, stored procedure, funzioni ed eventi sono scritti nel linguaggio proprio di MariaDB. Sono elencati per nome nel report, mai rimossi in silenzio, così puoi riscriverli per MySQL.

## Domande sulla conversione da MariaDB a MySQL

### Il mio dump viene caricato?

No. Il convertitore funziona nel tuo browser e legge il dump dal tuo disco a pezzi, quindi non lascia mai il tuo computer. Anche l'app desktop e la riga di comando convertono sul tuo computer.

### Quanto può essere grande il dump?

Il convertitore non tiene mai l'intero dump in memoria: legge il file due volte, per intervalli, e scrive lo script man mano. I dump di più gigabyte si convertono nel browser, nell'app desktop e con la riga di comando.

### Da quali versioni di MariaDB può provenire il dump?

Dump di mariadb-dump e mysqldump su MariaDB dalla 10.3 alla 12, con un INSERT per tabella o uno per riga. Ogni dump di test viene da MariaDB 10.11, 11.4 e 11.8 ed è confrontato con la sorgente cella per cella.

### Le colonne UUID, INET6, JSON e VECTOR vengono mantenute?

UUID diventa char(36), INET4 e INET6 varchar, JSON json e VECTOR un array json dei suoi float, perché MySQL 5.7 e 8.0 non hanno questi tipi.

### I valori AUTO_INCREMENT e le sequenze vengono mantenuti?

AUTO_INCREMENT resta com'è e riparte da dove l'ha lasciato il dump. MySQL non ha sequenze, quindi il report le segnala, insieme ai valori predefiniti che attingono da esse.

### E le stored procedure e i trigger?

Sono elencati per nome nel report e non vengono convertiti, così puoi verificare ognuno su MySQL prima di ricrearlo.

### Su quali versioni di MySQL si carica lo script?

MySQL 5.7 e successive. Ogni dump di test si carica su 5.7 e 9, fermandosi al primo errore se qualcosa va storto.

## Da MariaDB

- [Da MariaDB a PostgreSQL](https://intosql.com/it/mariadb-in-postgresql)
- [Da MariaDB a MariaDB](https://intosql.com/it/mariadb-in-mariadb)
- [Da MariaDB a SQLite](https://intosql.com/it/mariadb-in-sqlite)
- [Da MariaDB a SQL Server](https://intosql.com/it/mariadb-in-sql-server)
- [Da MariaDB a Oracle](https://intosql.com/it/mariadb-in-oracle)

## Verso MySQL

- [Da MySQL a MySQL](https://intosql.com/it/mysql-in-mysql)
- [Da PostgreSQL a MySQL](https://intosql.com/it/postgresql-in-mysql)
- [Da SQL Server a MySQL](https://intosql.com/it/sql-server-in-mysql)
- [Da SQLite a MySQL](https://intosql.com/it/sqlite-in-mysql)
- [Da Oracle a MySQL](https://intosql.com/it/oracle-in-mysql)

## Guida e tutte le coppie

- [Da MySQL a MariaDB](https://intosql.com/it/mysql-in-mariadb)
- [Guida alla migrazione da MariaDB a MySQL](https://intosql.com/docs/migrations/mariadb-to-mysql)
- [Tipi di dati da MariaDB a MySQL](https://intosql.com/docs/types/mariadb-to-mysql)
- [Tutte le coppie di database](https://intosql.com/it/migrazione-database)
