Comment utiliser MariaDB au lieu de MySQL dans mon projet Rails?
Lorsque j'essaie d'installer mysql2 gem, l'erreur est renvoyée car mysqlclient n'a pas été trouvé.
Voici quelques solution , mais je n’ai trouvé aucun paquet libmariadbd-dev sur mon openSUSE 12.3.
Il ne semble pas que openSUSE possède un package de développement client MariaDB. Vous devez installer le package libmysqlclient-devel. Comme MariaDB est considéré comme une solution de remplacement à MySQL, il devrait prendre en charge les clients MySQL, même si vous risquez de perdre de petites améliorations de MariaDB.
Il semble que la gem mysql2 devrait fonctionner avec les bibliothèques clientes MariaDB. D'autres options sont en espérant que le paquet mariadb-client est suffisant, trouvez un paquet tiers pour les bibliothèques ou installez-les vous-même.
Update Il existe maintenant un référentiel MariaDB pour openSUSE . Il comprend un package de développement et de très bonnes instructions. Placez ce qui suit dans un fichier sous /etc/zypp/repos.d/
# MariaDB 10.1 openSUSE repository list - created 2015-10-20 16:37 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/opensuse13-AMD64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Maintenant, vous pouvez exécuter zypper install MariaDB-client MariaDB-devel
Votre question ne concerne pas Ubuntu, mais je suis sûr que beaucoup de personnes googler Ubuntu (ou ses dérivés comme Mint) vont atterrir sur cette page. Dans Ubuntu, vous devez installer tous les packages à l'aide de ppa de MariaDB Foundation , mais ils incluent toutes les bibliothèques de développement et prennent en charge les versions 5.5, 10.0 et 10.1. Vous pouvez ensuite installer des packages tels que mariadb-server
, mariadb-client
, libmariadbclient-dev
et libmariadbclient-dev:i386
(client 32 bits).
Les instructions sont simples et détaillées sur le site. Par exemple, installer uniquement les bibliothèques de développement 10.1 dans Ubuntu 14.04
Sudo apt-get install software-properties-common
Sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Sudo add-apt-repository 'deb http://mirrors.syringanetworks.net/mariadb/repo/10.1/ubuntu trusty main'
Sudo apt-get update
Sudo apt-get install libmariadbclient-dev
Sur linux mint, j'ai pu installer:
Sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev
Pour les versions récentes de ubuntu 15.04 vives et Debian 8.0 Jessie :
Pas besoin d'installer à partir d'un ppa (mariadb-server
est inclus), mais vous devez installer libmariadb-client-lgpl-dev
et libmariadb-client-lgpl-dev-compat
et configurer la gem pour qu'elle utilise mariadb_config
:
apt-get install mariadb-server libmariadb-client-lgpl-dev libmariadb-client-lgpl-dev-compat
gem install mysql2 -- --with-mysql-config=/usr/bin/mariadb_config
# or for bundler
bundle config build.mysql2 --with-mysql-config=/usr/bin/mariadb_config
bundle install
Vous obtenez probablement une erreur liée à mariadb_config. Quelque chose comme
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/home/dev/.rbenv/versions/2.1.5/bin/Ruby extconf.rb --with-mysql-config=/usr/bin/mariadb_config
checking for Ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in Ruby/thread.h... yes
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Cannot find mysql_config at /usr/bin/mariadb_config
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details.
Vous devez juste aller dans le répertoire/usr/bin et lancer cette commande
Sudo ln -nfs mysql_config mariadb_config
Cela résoudra votre problème.
Dans Ubuntu 14.04.3 LTS
je peux installer avec Sudo apt-get install libmariadbd-dev
J'ai suivi https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/ pour installer MariaDB, qui ajoute le référentiel apt pour maria db.
À partir de Rails 5 (toujours en version bêta), MariaDB est officiellement pris en charge, ce qui devrait faciliter la mise en œuvre. Bien que je ne l'ai pas essayé moi-même.
Vous pouvez lire à ce sujet dans le blog post du blog Web Rails:
http://weblog.rubyonrails.org/2016/4/16/this-week-in-Rails-mariadb-action-cable-and-more/