在我的Rails项目中使用MariaDB代替MySQL

21

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

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

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


1
你应该将你的解决方案作为答案贴出来,然后选择它作为被采纳的答案。现在,这个问题在统计数据中显示为未答复。 - Grant Birchmeier
7个回答

13

看起来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基金会的ppa安装所有软件包,但它们包括所有开发库并支持5.5、10.0和10.1版本。然后,您可以安装诸如mariadb-servermariadb-clientlibmariadbclient-devlibmariadbclient-dev:i386(32位客户端)等软件包。
网站上的说明简单而详细。例如,在Ubuntu 14.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

6
在Linux Mint上,我能够安装以下内容:

sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

这将安装MariaDB客户端库的开发版本。

5

针对最新的Ubuntu 15.04 VividDebian 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

同样适用于Debian 8.0 Jessie。libmariadb-client-lgpl-dev-compat 应该真的有一个指向 mariadb_config 的符号链接。 - Lloeki

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

这将解决你的问题。


0

0
在Ubuntu 14.04.3 LTS中,我可以使用sudo apt-get install libmariadbd-dev进行安装。
我按照https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/的指示安装了MariaDB,该指南为MariaDB添加了apt存储库。

0

虽然安装libmariadbd-dev软件包是最简单的方法,但在某些操作系统或软件包管理器中可能无法使用。

例如,在使用homebrew的mac上就无法使用此软件包。不过我找到了一个解决方法。

要在mac上安装gem mysql2,您需要在homebrew中安装mariadb-connector-c。但是,该软件包与Mariadb符号链接冲突,因此您需要执行以下操作:

brew unlink mariadb

brew install mariadb-connector-c

cd into the rails project directory

bundle install (or gem install mysql2)

brew uninstall mariadb-connector-c

brew link mariadb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接