Подтвердить что ты не робот

Используйте MariaDB вместо MySQL в моем проекте Rails

Как я могу использовать MariaDB вместо MySQL в проекте Rails?

Когда я пытаюсь установить mysql2 gem, он возвращает ошибку, потому что mysqlclient не найден.

Вот несколько решений, но я не нашел пакет libmariadbd-dev на моем openSUSE 12.3.

4b9b3361

Ответ 1

Не похоже, что openSUSE имеет пакет разработки клиентов MariaDB. Необходимо установить пакет пакета libmysqlclient-devel. Поскольку MariaDB отмечен как замена MySQL, он должен будет поддерживать клиентов MySQL, хотя вы можете потерять небольшие улучшения в MariaDB.

Похоже, что gem mysql2 должен функционировать с клиентскими библиотеками MariaDB. Другие варианты надеются, что пакета mariadb-client достаточно, найдите сторонний пакет для библиотек или самостоятельно установите их.

Обновление В настоящее время существует репозиторий MariaDB для openSUSE. Он включает в себя пакет разработки и очень хорошие инструкции. Поместите в файл файл /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

Теперь вы можете запустить zypper install MariaDB-client MariaDB-devel


Ваш вопрос не о Ubuntu, но я уверен, что многие люди Googling Ubuntu (или его производные, такие как Mint) приземлятся на этой странице. В Ubuntu вам необходимо установить все пакеты с помощью MariaDB Foundation ppa, но они включают все библиотеки разработки и поддерживают версии 5.5, 10.0 и 10.1 релизы. Затем вы можете установить такие пакеты, как mariadb-server, mariadb-client, libmariadbclient-dev и libmariadbclient-dev:i386 (32-разрядный клиент).

Инструкции просты и детализированы на сайте. Например, установка только 10.1 dev-библиотек в 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

Ответ 2

В linux mint я смог установить:

sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

Ответ 3

Для последних ubuntu 15.04 ярких и Debian 8.0 Jessie:

Не нужно устанавливать из ppa (mariadb-server включено), но вам нужно установить libmariadb-client-lgpl-dev и libmariadb-client-lgpl-dev-compat и настроить gem для использования 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

Ответ 4

Вероятно, вы получаете ошибку, связанную с mariadb_config. Что-то вроде

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. 

Вам просто нужно перейти в каталог /usr/bin и запустить эту команду

sudo ln -nfs mysql_config mariadb_config

Это решит вашу проблему.

Ответ 5

В Ubuntu 14.04.3 LTS Я могу установить с помощью sudo apt-get install libmariadbd-dev

Я следил за https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/ для установки MariaDB, который добавляет apt-репозиторий для maria db.

Ответ 6

Как и Rails 5 (в настоящее время все еще находится в бета-версии), MariaDB официально поддерживается, что, я думаю, должно облегчить реализацию. Хотя я сам не пробовал.

Вы можете прочитать об этом в блоге в блоге Rails:

http://weblog.rubyonrails.org/2016/4/16/this-week-in-rails-mariadb-action-cable-and-more/