RailsプロジェクトでMySQLの代わりにMariaDBを使用するにはどうすればよいですか?
Mysql2 gemをインストールしようとすると、mysqlclientが見つからなかったため、エラーが返されます。
ここにいくつかの solution がありますが、openSUSE 12.3でlibmariadbd-devパッケージが見つかりませんでした。
OpenSUSEにMariaDBクライアント開発パッケージがあるようには見えません。 libmysqlclient-develパッケージパッケージをインストールする必要があります。 MariaDBはMySQLの置き換えのドロップとしてタグ付けされているため、MariaDBのわずかな改善を失う可能性がありますが、MySQLクライアントをサポートする必要があります。
Mysql2gemはMariaDBクライアントライブラリで機能するはずです。他のオプションは、mariadb-clientパッケージで十分であることを望んでおり、ライブラリのサードパーティパッケージを見つけるか、自分でインストールします。
UpdateopenSUSE用のMariaDBリポジトリ があります。開発パッケージと非常に優れた説明が含まれています。 /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に関するものではありませんが、グーグルUbuntu(またはMintのようなその派生物)の多くの人々がこのページにたどり着くと確信しています。 Ubuntuでは、 MariaDB Foundationのppa を使用してすべてのパッケージをインストールする必要がありますが、パッケージにはすべての開発ライブラリが含まれ、5.5、10.0、10.1リリースをサポートしています。次に、mariadb-server
、mariadb-client
、libmariadbclient-dev
、libmariadbclient-dev:i386
(32ビットクライアント)などのパッケージをインストールできます。
手順は簡単で、サイトで詳しく説明されています。たとえば、Ubuntu14.04に10.1開発ライブラリのみをインストールします
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
最近の場合buntu 15.04 vividおよびDebian 8.0 Jessie:
Ppaからインストールする必要はありません(mariadb-server
が含まれています)が、libmariadb-client-lgpl-dev
とlibmariadb-client-lgpl-dev-compat
をインストールし、mariadb_config
を使用するようにgemを構成する必要があります。
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リポジトリを追加するMariaDBをインストールしました。
Rails 5(現在はまだベータ版)の時点で、MariaDBが正式にサポートされているため、実装が簡単になると思います。自分で試したことはありませんが。
これについては、Railsウェブログ:
http://weblog.rubyonrails.org/2016/4/16/this-week-in-Rails-mariadb-action-cable-and-more/