Как я могу использовать MariaDB вместо MySQL в проекте Rails?
Когда я пытаюсь установить mysql2 gem, он возвращает ошибку, потому что mysqlclient не найден.
Вот несколько решений, но я не нашел пакет libmariadbd-dev на моем openSUSE 12.3.
Как я могу использовать MariaDB вместо MySQL в проекте Rails?
Когда я пытаюсь установить mysql2 gem, он возвращает ошибку, потому что mysqlclient не найден.
Вот несколько решений, но я не нашел пакет libmariadbd-dev на моем openSUSE 12.3.
Не похоже, что 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
В linux mint я смог установить:
sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev
Для последних 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
Вероятно, вы получаете ошибку, связанную с 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
Это решит вашу проблему.
В 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.
Как и Rails 5 (в настоящее время все еще находится в бета-версии), MariaDB официально поддерживается, что, я думаю, должно облегчить реализацию. Хотя я сам не пробовал.
Вы можете прочитать об этом в блоге в блоге Rails:
http://weblog.rubyonrails.org/2016/4/16/this-week-in-rails-mariadb-action-cable-and-more/