Можно ли легко заменить MySQL на MariaDB или есть что изменить в этом случае?
Вопрос
Если я заменю сервер MySQL 5.1 сервером MariaDB (хранилища Maria и XtraDB) вместо MySQL (MyISAM и InnoDB), будет ли большая часть клиентского программного обеспечения MySQL (вкл.приложения , созданные на PHP 5.2 и Java SE 1.6)...
- просто продолжать работать без каких-либо изменений (возможно, с незначительными регрессиями)?
- Или мне придется заменить / перенастроить драйверы клиента (например, использовать другой класс драйверов JDBC и строку подключения)?
- Или мне придется даже изменить код приложения?
Решение
http://kb.askmonty.org/v/mariadb-versus-mysql
Все разъемы MySQL (PHP, PERL, Python, Java, Myodbc, Ruby, Mysql Connector etc) работает без изменений с Mariadb.
Другие советы
Я использовал Mariadb в качестве замены MySQL от Oracle в течение многих лет.Это быстрее и очень надежно.Требует лишь небольшого внимания в apt, но ничего серьезного.Кроме того, в Mariadb есть одна маленькая деталь;он видит [ошибка] "Предупреждение PHP:mysql_connect():Незначительное несоответствие версий заголовков и клиентской библиотеки" в журналах.Я не нашел никакого другого решения для этого, кроме как начать компиляцию вручную: Спроси Монти.
$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
Просто оставайтесь работать без каких-либо изменений (с незначительными регрессиями может быть)?
У вас не должно быть никаких проблем, если вы заменяете той же версией. Если вы в настоящее время используете MySQL 5.1, вы можете заменить на MariaDB 5.1. Если вы используете 5.5, используйте соответствующий. MariaDB V5.2 и V5.3 и улучшенные версии 5.1.
Или я должен заменить / реконфигурировать драйверы клиента (например, использовать другой класс драйвера JDBC и строку подключения)?
Вы не должны. MySQL и Mariadb используют один и тот же протокол и общий синтаксис, но в некоторых случаях могут быть несколько исключений. Урл, указанный в другом ответе, является отличным ресурсом: http://kb.askmonty.org/v/mariadb-versus-mysql
Что касается лицензий водителей, существуют различия, если вы планируете коммерчески распространять свой проект. В этом случае я рекомендую вам дважды проверить условия лицензии, и если у вас есть какие -либо проблемы, используйте версии разъемов MariaDB/SkySQL, как это предложено в другом ответе. Проверять http://www.skysql.com/downloads/java-cc-connectors-mariadb Для деталей.
Или у меня даже будет изменять код приложения?
Код приложения должен быть без изменений.
Просто немного обратной связи, решающую совместимость с драйвером MySQL / Codeigniter. Я столкнулся с проблемами по битам атрибутов типов несколько минут назад.
Значение не было поиск с сервера. Это всегда было пусто. Я использовал стандартную конфигурацию базы данных CI, которая использует драйвер "MySQL". После изменения драйвера в Database.php на «mysqli» была решена проблема.
Просто головы, что могут быть некоторые различия, если вы используете старый драйвер MySQL.
$db['default']['dbdriver'] = 'mysqli';
Mariadb Client API версии 5.5.40
MariaDB MySQL развился.
Это также тот же разработчик, который стоит за MySQL и MariaDB. Это почти то же самое (если это не так, я могу только сказать, что MariaDB - MySQL, улучшен, точка).
Вам не нужно ничего менять в своем PHP.
Вопреки распространенному мнению, драйвер Connector Connector/J JDBC для подключения к MySQL в Java и взаимодействия не хорошо играет с MariaDB. Чтобы работать с MariaDB, вам необходимо, чтобы ваше приложение использовало моросящий или драйвер SkySQL.
http://kb.askmonty.org/en/mariadb-faq-is-there-any-java-connector-for-mariadb-han-the-one-from-mysql