Можно ли без проблем заменить MySQL на MariaDB или есть что изменить в этом случае? - PullRequest
27 голосов
/ 05 ноября 2010

Если я заменю сервер MySQL 5.1 на сервер MariaDB (хранилища Maria & XtraDB) вместо MySQL (MyISAM & InnoDB), то будет большая часть клиентского программного обеспечения MySQL (включая приложения, созданные на PHP 5.2 и Java SE 1.6) .. .

  1. просто продолжать работать без каких-либо изменений (возможно, с небольшими регрессиями)?
  2. Или мне придется заменить / перенастроить драйверы клиента (например, использовать другой класс драйвера JDBC и строку подключения)?
  3. Или мне даже придется менять код приложения?

Ответы [ 6 ]

37 голосов
/ 05 ноября 2010

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

Все коннекторы MySQL (PHP, Perl, Python, Java, MyODBC, Ruby, коннектор MySQL C и т. Д.) Работают без изменений с MariaDB.

1 голос
/ 12 декабря 2013

просто продолжайте работать без каких-либо изменений (с небольшими регрессиями может быть)?

У вас не должно быть проблем, если вы заменяете на ту же версию. Если вы в настоящее время используете MySQL 5.1, вы можете заменить на MariaDB 5.1. Если вы используете 5.5, используйте соответствующий. MariaDB v5.2 и v5.3 и улучшенные версии 5.1.

Или мне придется заменить / перенастроить драйверы клиента (например, использовать другой Класс драйвера JDBC и строка подключения)?

Ты не должен. MySQL и MariaDB используют один и тот же протокол и общий синтаксис, но в некоторых случаях может быть несколько исключений. URL, указанный в другом ответе, является отличным ресурсом: http://kb.askmonty.org/v/mariadb-versus-mysql

Что касается водительских прав, существуют различия, если вы планируете распространять свой проект на коммерческой основе. В этом случае я рекомендую вам дважды проверить условия лицензии и, если у вас есть какие-либо проблемы, использовать версии коннекторов MariaDB / SkySQL, как предлагается в другом ответе. Проверьте http://www.skysql.com/downloads/java-cc-connectors-mariadb для деталей.

Или мне даже придется менять код приложения?

Код приложения не должен изменяться.

1 голос
/ 04 июня 2012

Я использовал Mariadb в качестве замены MySQL для Oracle в течение многих лет. Это быстрее и очень надежно. Нужно лишь немного внимания в apt, но ничего серьезного. Также есть одна маленькая деталь с Mariadb; он видит [error] «Предупреждение PHP: mysql_connect (): несоответствие заголовков и минорной версии клиентской библиотеки» в журналах. Я не нашел другого решения, кроме как начать компиляцию вручную: 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
0 голосов
/ 09 апреля 2019

MariaDB - это развитая MySQL.

Это тот же разработчик, который стоит за MySQL и MariaDB. Это почти то же самое (если это не так, я могу только сказать, что MariaDB улучшен MySQL, точка).

Вам не нужно ничего менять в своем PHP.

0 голосов
/ 07 мая 2015

Просто небольшой отзыв о совместимости с драйвером mysql / CodeIgniter. Я столкнулся с проблемами типов атрибутов BIT несколько минут назад.

Значение не было получено с сервера. Это всегда было пусто. Я использовал стандартную конфигурацию базы данных CI, которая использует драйвер "mysql". После изменения драйвера в файле database.php на «mysqli» проблема была решена.

Только на голову, что могут быть некоторые различия, если вы используете старый драйвер mysql.

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

API клиента MariaDB версии 5.5.40

0 голосов
/ 14 апреля 2012

Вопреки распространенному мнению, драйвер JDBC Connector / J по умолчанию для подключения к MySQL и взаимодействия с ним в Java не подходит для MariaDB.Для работы с MariaDB ваше приложение должно использовать драйвер Drizzle или SkySQL.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...