¿Se puede reemplazar MySQL sin problemas con MariaDB o hay cosas que cambiar en este caso?


Si sustituyo un servidor MySQL 5.1 por un servidor MariaDB (Maria & XtraDB storages) en lugar de MySQL (MyISAM & InnoDB), la mayor parte del software cliente MySQL (incl. aplicaciones realizadas con PHP 5.2 y Java SE 1.6)...

  1. simplemente seguir trabajando sin ningún cambio (con regresiones menores tal vez)?
  2. ¿O tendré que reemplazar / reconfigurar los controladores del cliente (como usar otra clase de controlador JDBC y cadena de conexión)?
  3. O incluso tendré que cambiar la aplicación código?
Author: NotMe, 2010-11-05

5 answers

Http://kb.askmonty.org/v/mariadb-versus-mysql

Todos los conectores MySQL (PHP, Perl, Python, Java, MyODBC, Ruby, MySQL C connector, etc.) funcionan sin cambios con MariaDB.

 36
Author: Qwerty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-05 13:46:37

He utilizado Mariadb como reemplazo para MySQL de Oracle durante años. Es más rápido y muy fiable. Necesita poca atención en apt, pero nada grave. Además, hay un pequeño detalle con Mariadb; es ver [error]" PHP Warning: mysql_connect(): Headers and client library minor version mismatch " en los registros. No he encontrado otra solución a eso que no sea comenzar a compilar manualmente: 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
 1
Author: Peter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-19 22:13:24

Simplemente permanezca trabajando sin ningún cambio (con regresiones menores tal vez)?

No debería tener ningún problema siempre y cuando lo reemplace con la misma versión. Si actualmente está utilizando MySQL 5.1, puede reemplazarlo con MariaDB 5.1. Si está utilizando la versión 5.5, utilice la correspondiente. MariaDB v5.2 y v5.3 y versiones mejoradas de 5.1.

O tendré que reemplazar / reconfigurar los controladores del cliente (como usar otro Clase de controlador JDBC y conexión string)?

No debería. MySQL y MariaDB usan el mismo protocolo y sintaxis general, pero podría haber algunas excepciones en algunos casos. La URL citada en otra respuesta es un gran recurso: http://kb.askmonty.org/v/mariadb-versus-mysql

Con respecto a las licencias de conducir, hay diferencias si planea distribuir su proyecto comercialmente. En ese caso, le recomiendo que vuelva a verificar los términos de la licencia y si tiene alguna preocupación, use el MariaDB / SkySQL versiones de los conectores como se sugiere en otra respuesta. Comprobar http://www.skysql.com/downloads/java-cc-connectors-mariadb para más detalles.

¿O tendré que cambiar el código de la aplicación?

El código de aplicación debe permanecer sin cambios.

 1
Author: seattlegaucho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-12 00:07:20

Solo un pequeño comentario sobre la compatibilidad con mysql driver/CodeIgniter. Me encontré con los problemas en los tipos de atributos de BITS hace unos minutos.

El valor no fue recuperado del servidor. Siempre estaba vacío. Estaba usando la configuración de base de datos CI estándar que está utilizando el controlador "mysql". Después de cambiar el controlador en la base de datos.se resolvió el problema de php a "mysqli".

Solo el aviso de que puede haber algunas diferencias si está utilizando mysql antiguo controlador.

$db['default']['dbdriver'] = 'mysqli';

MariaDB client API versión 5.5.40

 0
Author: Tom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-07 09:31:10

Contrariamente a la creencia popular, el controlador JDBC Connector/J predeterminado para conectarse e interactuar con MySQL en Java no funciona bien con MariaDB. Para trabajar con MariaDB, necesita que su aplicación use el controlador Drizzle o SkySQL.

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

 -1
Author: Nuri Hodges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-13 20:26:52