Can MySQL senza essere sostituito con MariaDB o ci sono cose da cambiare in questo caso?
Domanda
Se io sostituire un server MySQL 5.1 con MariaDB server (Maria & XtraDB stoccaggi) invece di MySQL (MyISAM e InnoDB), sarà la maggior parte del software client MySQL (incl. Le applicazioni realizzato con PHP 5.2 e Java SE 1.6) .. .
- solo restare a lavorare senza alcuna modifica (con minime regressioni forse)?
- Oppure dovrò sostituire / driver client di riconfigurazione (come l'uso un'altra classe driver JDBC e stringa di connessione)?
- Oppure dovrò anche a codice dell'applicazione cambiamento?
Soluzione
http://kb.askmonty.org/v/mariadb-versus-mysql
Tutti i connettori MySQL (PHP, Perl, Python, Java, MyODBC, Ruby, C di MySQL connettore ecc) che lavora invariato MariaDB.
Altri suggerimenti
Ho usato MariaDB come ricambio per MySQL di Oracle per anni. E 'più veloce e molto affidabile. Ha solo bisogno di poca attenzione in apt, ma niente di grave. Inoltre, c'è un piccolo dettaglio con MariaDB; si sta vedendo [errore] "PHP Warning: mysql_connect (): intestazioni e libreria client versione minore non corrispondente" nei registri. Non ho trovato alcuna altra soluzione per che oltre ad avviare manualmente la compilazione: askMonty .
$php -i | grep 'Client API'
Client API version => 5.3.7-MariaDB
Client API library version => 5.3.7-MariaDB
Client API header version => 5.1.61
Client API version => 5.3.7-MariaDB
solo restare a lavorare senza alcuna modifica (con lievi regressioni forse)?
Non dovrebbe avere problemi a patto che si sostituisce con la stessa versione. Se al momento si utilizza MySQL 5.1, è possibile sostituirli con MariaDB 5.1. Se si utilizza 5.5, utilizzare quello corrispondente. MariaDB v5.2 e v5.3 e versioni migliorate di 5,1.
O dovrò sostituire / driver client di riconfigurazione (come l'uso un'altra JDBC classe del driver e stringa di connessione)?
Non dovresti. MySQL e MariaDB entrambi utilizzano lo stesso protocollo e la sintassi generale, ma ci potrebbero essere alcune eccezioni in alcuni casi. L'URL citato in un'altra risposta è una grande risorsa: http://kb.askmonty.org/ v / MariaDB-versus-mysql
Per quanto riguarda le licenze dei piloti, ci sono differenze se si prevede di distribuire il vostro progetto in commercio. In questo caso vi consiglio di controllare bene i termini della licenza e se avete dubbi, utilizzare le versioni MariaDB / SkySQL dei connettori come suggerito in un'altra risposta. Controllare http://www.skysql.com/downloads/java-cc-connectors- MariaDB per i dettagli.
O dovrò anche a codice dell'applicazione cambiamento?
Il codice di applicazione dovrebbe essere invariata.
Solo un po 'di feedback requarding la compatibilità con il driver mysql / CodeIgniter. Mi sono imbattuto in problemi sul BIT attributi tipi pochi minuti fa.
Il valore non è stato retrived dal server. Era sempre vuoto. Stavo usando la configurazione del database CI standard che utilizza driver "mysql". Dopo aver cambiato il conducente database.php a "mysqli" problema è stato risolto.
A soli il testa a testa che ci possono essere alcune differenze se si utilizza vecchio driver mysql.
$db['default']['dbdriver'] = 'mysqli';
MariaDB client API versione 5.5.40
MariaDB è MySQL si è evoluto.
E 'anche lo stesso sviluppatore che sta dietro MySQL e MariaDB. E 'quasi la stessa (se non lo è, posso solo dire MariaDB è MySQL migliorata, DOT).
Non hai nulla al cambiamento in PHP.
Contrariamente alla credenza popolare, il driver Connector / J JDBC di default per il collegamento da e per l'interazione con MySQL in Java non gioca bene con MariaDB. Per lavorare con MariaDB, è necessario avere il vostro uso dell'applicazione del driver Drizzle o SkySQL.