source

레일 프로젝트에서 MySQL 대신 MariaDB 사용

manysource 2022. 11. 3. 21:56

레일 프로젝트에서 MySQL 대신 MariaDB 사용

레일즈 프로젝트에서 MySQL 대신 MariaDB를 사용하는 방법은 무엇입니까?

mysql2 gem을 설치하려고 하면 mysqlclient를 찾을 수 없었기 때문에 오류가 반환됩니다.

여기 몇 가지 해결책이 있습니다만, 오픈에서 libmariadbd-dev 패키지를 찾을 수 없었습니다.SUSE 12.3.

열려있는 것 같지 않아요SUSE에는 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-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

Linux mint에서는 다음을 설치할 수 있었습니다.

sudo aptitude install libmariadbclient-dev:i386 libmariadbclient-dev

최신 ubuntu 15.04 vivid 및 Debian 8.0 Jesse:

ppa에서 설치할 필요가 없습니다( )mariadb-server를 인스톨 할 필요가 있습니다.libmariadb-client-lgpl-dev그리고.libmariadb-client-lgpl-dev-compat사용할 보석을 설정합니다.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 in - sysql _ config mariadb _ config

이것으로 당신의 문제가 해결됩니다.

Ubuntu 14.04.3 LTS를 사용하여 설치할 수 있습니다.sudo apt-get install libmariadbd-dev

https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/에 따라 Maria DB에 적합한 저장소를 추가하는 MariaDB를 설치했습니다.

Rails 5(현재 베타판)에서는 MariaDB가 공식적으로 지원되므로 구현이 용이할 것으로 생각합니다.저도 먹어본 적은 없지만요.

Rails 웹로그의 블로그 포스트에서 읽을 수 있습니다.

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

libmariadbd-dev 패키지를 설치하는 것이 가장 쉬운 방법이지만 일부 OS 또는 패키지 관리자에서는 사용할 수 없습니다.

예를 들어 homebrew가 있는 Mac에서는 이 기능을 사용할 수 없습니다.그래도 해결 방법을 찾았어요.

mac에 gem mysql2를 설치하려면 홈브루에 mariadb-connector-c가 필요합니다.이 패키지는 Mariadb Symblinks와 경합하므로 다음 작업을 수행해야 합니다.

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

언급URL : https://stackoverflow.com/questions/16304311/use-mariadb-instead-of-mysql-in-my-rails-project