Можно ли MySQL легко заменить на MariaDB или есть ли что-то изменить в этом случае?

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

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

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

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

Я использовал Mariadb в качестве замены для MySQL Oracle в течение многих лет. Это быстрее и очень надежно. Нужно просто мало внимания в apt, но ничего серьезного. Кроме того, есть небольшая деталь с Мариадбом; он видит [ошибку] ​​«Предупреждение 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 

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

У вас не должно возникать проблем, если вы заменяете ту же версию. Если вы используете 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 .

Или я могу изменить код приложения?

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

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

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

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

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

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

Вопреки распространенному мнению, стандартный драйвер Connector / J JDBC для подключения и взаимодействия с 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