如何在我的Rails项目中使用MariaDB而不是MySQL?
当我尝试安装mysql2 gem时,它会返回错误,因为找不到mysqlclient。
这里有一些solution,但我在openSUSE 12.3上没有找到任何 libmariadbd-dev 包。
答案 0 :(得分:13)
看起来openSUSE没有MariaDB客户端开发包。您必须安装libmysqlclient-devel软件包。由于MariaDB被标记为MySQL的替代品,因此它必须支持MySQL客户端,尽管您可能会失去一点点MariaDB改进。
似乎mysql2 gem应该与MariaDB客户端库一起运行。其他选择是希望mariadb-client包足够,为库找到第三方包或自己安装。
<强>更新强> 现在有一个MariaDB repository for 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,但我确信很多人用谷歌搜索Ubuntu(或其衍生品,如Mint)将登陆此页面。在Ubuntu中,您必须使用MariaDB Foundation's ppa安装所有软件包,但它们包括所有开发库并支持5.5,10.0和10.1版本。然后,您可以安装mariadb-server
,mariadb-client
,libmariadbclient-dev
和libmariadbclient-dev:i386
(32位客户端)等软件包。
网站上的说明简单明了。例如,在Ubuntu 14.04中只安装10.1 dev库
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
答案 1 :(得分:6)
在linux mint上,我能够安装:
sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev
答案 2 :(得分:5)
最近 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
答案 3 :(得分:0)
可能您收到与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
这将解决您的问题。
答案 4 :(得分:0)
在Ubuntu 14.04.3 LTS
我可以使用sudo apt-get install libmariadbd-dev
我跟着https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/安装了MariaDB,它为maria db添加了apt存储库。
答案 5 :(得分:0)
从Rails 5(目前仍处于测试版)开始,MariaDB得到官方支持,我认为应该可以简化实施。虽然我自己没有尝试过。
您可以在Rails博客上的博文中了解它:
http://weblog.rubyonrails.org/2016/4/16/this-week-in-rails-mariadb-action-cable-and-more/