Can MySQL senza essere sostituito con MariaDB o ci sono cose da cambiare in questo caso?

StackOverflow https://stackoverflow.com/questions/4106315

  •  29-09-2019
  •  | 
  •  

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) .. .

  1. solo restare a lavorare senza alcuna modifica (con minime regressioni forse)?
  2. Oppure dovrò sostituire / driver client di riconfigurazione (come l'uso un'altra classe driver JDBC e stringa di connessione)?
  3. Oppure dovrò anche a codice dell'applicazione cambiamento?
È stato utile?

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.

http://kb.askmonty.org/en/mariadb-faq-is-there-any-java-connector-for-mariadb-than-the-one-from-mysql

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top