在我的Rails项目中使用MariaDB而不是MySQL

如何在我的Rails项目中使用MariaDB而不是MySQL?

当我尝试安装mysql2 gem时,它会返回错误,因为找不到mysqlclient。

这里有一些解决方案 ,但我在openSUSE 12.3上没有找到任何libmariadbd-dev包。

它看起来不像openSUSE有一个MariaDB客户端开发包。 您必须安装libmysqlclient-devel软件包。 由于MariaDB被标记为MySQL的替代品,因此它必须支持MySQL客户端,尽管您可能会失去一点点的MariaDB改进。

似乎mysql2 gem应该与MariaDB客户端库一起运行。 其他选项是希望mariadb-client软件包足够,为库找到第三方软件包或自己安装它们。

更新现在有一个openSUSE的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-servermariadb-clientlibmariadbclient-devlibmariadbclient-dev:i386 (32位客户端)等libmariadbclient-dev:i386

网站上的说明简单而详细。 例如,在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 

在linux mint上,我能够安装:

sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

对于最近的ubuntu 15.04生动Debian 8.0 Jessie

无需从ppa安装(包括mariadb-server ),但您必须安装libmariadb-client-lgpl-devlibmariadb-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,它为maria db添加了apt存储库。

从Rails 5开始(目前仍处于测试阶段),MariaDB得到官方支持,我认为应该可以简化实施。 虽然我自己没有尝试过。

您可以在Rails博客上的博客post中阅读相关内容:

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

Interesting Posts