2013-04-30 10 views
20

Làm cách nào để sử dụng MariaDB thay vì MySQL trong dự án Rails của tôi?Sử dụng MariaDB thay vì MySQL trong dự án Rails của tôi

Khi tôi cố gắng cài đặt đá quý mysql2, nó trả về lỗi, vì không tìm thấy mysqlclient.

Ở đây một số solution, nhưng tôi không tìm thấy gói nào libmariadbd-dev trên openSUSE 12.3 của tôi.

+1

Bạn nên đặt giải pháp của bạn như một câu trả lời, sau đó chọn nó như là câu trả lời chấp nhận. Ngay bây giờ, câu hỏi này xuất hiện trong các số liệu thống kê như không được trả lời. –

Trả lời

13

Dường như openSUSE có gói phát triển ứng dụng khách MariaDB. Bạn phải cài đặt gói gói libmysqlclient-devel. Vì MariaDB được gắn thẻ như là một sự thay thế cho MySQL, nó sẽ phải hỗ trợ các máy khách MySQL, mặc dù bạn có thể mất các bit nhỏ của các cải tiến MariaDB.

Dường như đá quý mysql2 nên hoạt động với thư viện máy khách MariaDB. Các tùy chọn khác đang hy vọng gói mariadb-client là đủ, tìm gói bên thứ 3 cho các thư viện hoặc tự cài đặt chúng.

Cập nhật Hiện tại có MariaDB repository for openSUSE. Nó bao gồm một gói phát triển, và hướng dẫn rất tốt. Đặt sau đây trong một tập tin dưới /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 

Bây giờ bạn có thể chạy zypper install MariaDB-client MariaDB-devel


Câu hỏi của bạn không phải là về Ubuntu, nhưng tôi chắc chắn rất nhiều của những người Googling của Google (hoặc các dẫn xuất của nó như Mint) sẽ đổ bộ lên trang này. Trong Ubuntu, bạn phải cài đặt tất cả các gói bằng cách sử dụng MariaDB Foundation's ppa, nhưng chúng bao gồm tất cả các thư viện phát triển và hỗ trợ các bản phát hành 5.5, 10.0 và 10.1. Sau đó, bạn có thể cài đặt các gói như mariadb-server, mariadb-client, libmariadbclient-devlibmariadbclient-dev:i386 (ứng dụng khách 32 bit).

Hướng dẫn rất đơn giản và chi tiết trên trang web. Ví dụ, việc cài đặt chỉ là 10,1 thư viện dev trong 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 
6

On bạc hà linux, tôi đã có thể cài đặt:

sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

5

cho gần đây ubuntu 15.04 sống độngDebian 8.0 Jessie:

Không cần cài đặt từ ppa (mariadb-server), nhưng bạn phải cài đặt libmariadb-client-lgpl-devlibmariadb-client-lgpl-dev-compat và cấu hình các viên ngọc để sử dụng 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 
+0

Cũng hợp lệ đối với Debian 8.0 Jessie. libmariadb-client-lgpl-dev-compat thực sự cần có một liên kết tượng trưng cho mariadb_config. – Lloeki

0

Có lẽ bạn đang nhận lỗi liên quan với mariadb_config.Một cái gì đó như

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. 

Bạn chỉ cần phải đi đến/usr/thư mục bin và chạy lệnh này

sudo ln -nfs mysql_config mariadb_config

này sẽ giải quyết vấn đề của bạn.