web-dev-qa-db-fra.com

Utiliser MariaDB au lieu de MySQL dans mon projet Rails

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.

20
rthink

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
13
jbo5112

Sur linux mint, j'ai pu installer:

Sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

6

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
5
Markus

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.

0
Neeraj Kumar

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.

0
Amit Patel

À 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/

0
Koen.