Mysql2 को स्थापित करने में त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल


485

mysql2रेल के लिए मणि स्थापित करने की कोशिश करते समय मुझे कुछ समस्याएं हो रही हैं । जब मैं इसे चलाकर स्थापित करने का प्रयास करता हूं bundle installया gem install mysql2यह मुझे निम्न त्रुटि देता है:

Mysql2 स्थापित करने में त्रुटि: त्रुटि: मणि देशी एक्सटेंशन बनाने में विफल।

मैं इसे कैसे ठीक कर सकता हूं और सफलतापूर्वक स्थापित कर सकता हूं mysql2?


मेरे मामले में रूबी 2.1 कोई त्रुटि नहीं दिखाई गई, लेकिन यह कई मिनटों तक स्थिर रही। Spacemonkey उत्तर ने इसे ठीक कर दिया।
लुसियो

जवाबों:


915

योग्यता का उपयोग करके उबंटू / डेबियन और अन्य वितरणों पर:

sudo apt-get install libmysql-ruby libmysqlclient-dev

पैकेज libmysql-rubyको चरणबद्ध तरीके से बदल दिया गया है ruby-mysqlयहीं पर मुझे इसका हल मिला।

यदि उपरोक्त आदेश काम नहीं करता है क्योंकि libmysql-rubyनहीं मिल सकता है, तो निम्नलिखित पर्याप्त होना चाहिए:

sudo apt-get install libmysqlclient-dev

Red Hat / CentOS और यम का उपयोग करने वाले अन्य वितरणों पर:

sudo yum install mysql-devel

होमब्रे के साथ मैक ओएस एक्स पर :

brew install mysql

5
मैं विंडोज 7.. विचारों पर एक ही मुद्दा है? मेरे लिए काम नहीं किया उपरोक्त आदेश ..
femi

37
नमस्कार, मैं Ubuntu 12.04 का उपयोग रूबी 1.9.3 और रेल 3.2.8 के साथ कर रहा हूं और मेरे मामले में, स्थापित करना libmysqlclient-devपर्याप्त था।
SMMousavi

2
यदि आप Mac OSX का उपयोग कर रहे हैं: XCode के नवीनतम संस्करण में अपडेट करें और डेवलपमेंट टूल इंस्टॉल करें। मेरे पास एक ही mysql इंस्टॉल इश्यू था (यहां तक ​​कि जब भी --with-mysql-config = / usr / local / mysql / bin / mysql_config का उपयोग करते हुए)
Americo Savinon

2
जब से मैंने रूबी को RVM के माध्यम से स्थापित किया था, तब libmysql-ruby की आवश्यकता नहीं थी
माइकल लैंग

1
विंडोज़ के लिए stackoverflow.com/questions/19014117/…
नाइटिगैन

60

मैं एक मैक पर हूं और ओपन सोर्स प्रोग्राम इंस्टॉल करने के लिए होमब्रे का उपयोग करता हूं । होमब्रे को स्थापित करने के लिए मुझे मैक देव टूल्स को स्थापित करना था, लेकिन उसके बाद यह एक सरल था:

brew install mysql

mysql स्थापित करने के लिए। मैं एक mysql मणि समस्या के बाद से नहीं किया है।


3
मुझे ऐसा करने के बाद भी त्रुटि हो रही है। क्या मुझे रत्न i mysql2 करने पर कुछ विकल्प पास करने चाहिए ??
ह्नेनप्रशांत

इसे चलाने के बाद मुझे Mac OSX Lion पर mysql2 माणिक रत्न को स्थापित करने में कोई समस्या नहीं हुई।
क्रिश G

3
यदि यह मदद नहीं करता है, तो प्रयास करें brew link mysql --force
चक बैट्सन

34

यहाँ विंडोज उपयोगकर्ताओं के लिए एक समाधान है , आशा है कि यह मदद करता है!

विंडोज पर रेल 3 के साथ MySQL का उपयोग करना

  • Railsinstaller स्थापित करें -> www.railsinstaller.org (मैंने इसे c: \ Rails पर स्थापित किया है)

  • MySQL स्थापित करें (मैंने MySQL 5.5 का उपयोग किया) -> dev.mysql.com/downloads/installer/

--- MySQL स्थापना के लिए ---

यदि आपके पास पहले से ये दो फाइलें स्थापित नहीं हैं, तो आपको अपने MySQL को

vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx जाने की आवश्यकता हो सकती है ? id = 5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id=17718

डिफ़ॉल्ट इंस्टॉल डेवलपर मशीन का उपयोग करें

-MSQL सर्वर कॉन्फ़िगरेशन-
पोर्ट: 3306
विंडोज़ सेवा का नाम: MySQL55
mysql रूट पास: रूट (आप इसे बाद में बदल सकते हैं)
(उपयोगकर्ता नाम: रूट)
-MSQL सर्वर कॉन्फ़िगरेशन-

--- MySQL स्थापना के लिए ---


--- mysql2 मणि ​​को स्थापित करें ---

महत्वपूर्ण: इसे गिट बैश कमांड लाइन के साथ करें (यह railsinstaller के साथ स्थापित किया गया था) -> स्टार्ट / गिट बैश

रत्न mysql2 स्थापित करें - '--with-mysql-lib = "c: \ प्रोग्राम फ़ाइलें \ MySQL \ MySQL सर्वर 5.5 \ lib "--with-mysql- शामिल =" c: \ Program Files \ MySQL \ MySQL सर्वर 5.5 \ "शामिल हैं"

अब रत्न को सही तरीके से स्थापित किया जाना चाहिए

अंतिम रूप से libmysll.dll फ़ाइल की प्रतिलिपि बनाएँ
C: \ Program Files \ MySQL \ MySQL सर्वर 5.5 \ lib
to
C: \ Rails \ Ruby1.9.2.2 \ bin

--- mysql2 Gem स्थापित करें ---


अब आप MySQL के साथ अपने रेल एप्लिकेशन का उपयोग करने में सक्षम होंगे, यदि आप सुनिश्चित नहीं हैं कि MySQL के साथ रेल 3 एप्लिकेशन कैसे बनाएं ...


--- MySQL के साथ एक रेल 3 ऐप प्राप्त करें ---

ओपन कमांड प्रॉम्प्ट (गेट बैश नहीं) -> प्रारंभ / cmd
अपने फ़ोल्डर में नेविगेट करें (c: \ Sites)
नई रेल एप्लिकेशन बनाएं

rails new world

फ़ाइल को हटाएं c: \ Sites \ world \ public \ index.html
फ़ाइल को संपादित करें c: \ Sites \ world \ config \ मार्गों.rb
इस लाइन को जोड़ें -> रूट: =>> 'शहरों # सूचकांक'

ओपन कमांड प्रॉम्प्ट (दृश्य और नियंत्रक उत्पन्न करें)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



इस तरह दिखने के लिए फ़ाइल c: \ Sites \ world \ app \ मॉडल \ city.rb संपादित करें

class City < ActiveRecord::Base
 set_table_name "city"
end

इस तरह से देखने के लिए फ़ाइल c: \ Sites \ world \ config \ database.yml संपादित करें

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

रत्न में जोड़ें

gem 'mysql2'

ओपन कमांड प्रॉम्प्ट विंडो cmd, न कि Git Bash (अपना ऐप चलाएं!)
अपने ऐप फ़ोल्डर में नेविगेट करें (c: \ Sites \ World)

rails s

यहां अपना ब्राउज़र खोलें -> http: // localhost: 3000

--- MySQL के साथ एक रेल 3 एप्लिकेशन प्राप्त करें ---


धन्यवाद, समस्या यह थी कि मैंने विधवाओं का इस्तेमाल किया PowerShell और न कि सामान्य कमांड प्रॉम्प्ट। अब यह काम कर रहा है :)
16:33 पर Danpe

होस्ट 127.0.0.1 होना चाहिए, और यदि पासवर्ड नंबर है, तो इसे उद्धरण में '123456' पर डालना होगा, अन्यथा हम सामान्य रूप से टाइप कर सकते हैं admin123
duykhoa

3
XAMPP का उपयोग करना:gem install mysql2 -- --with-mysql-dir=C:\xampp\mysql
Mifeng

पथ पर देखें \ n "mysql" शामिल करें
इवान

@ मिफेंग ने मेरे लिए बहुत अच्छा काम किया लेकिन मैं GitBash का उपयोग कर रहा हूं और -- --with-mysql-dir="C:\xampp\mysql"उद्धरण के बिना मेरे `` छीन लिए गए। धन्यवाद
Mutmatt

20

मेरे पास कई कंप्यूटर, 32 और 64 बिट्स प्रोसेसर हैं, वे उबंटू लिनक्स, मावरिक (10.10) रिलीज पर चलते हैं।

मुझे भी यही समस्या थी, और मेरे लिए, sudo apt-get install libmysql-ruby libmysqlclient-dev काम था !!!


19

के लिए MacOS मोजावे :

gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include


साथ ही मैकओएस कैटालिना के लिए
व्लाद

17

MacOS उपयोगकर्ताओं के लिए एक और तरीका है

यदि आपने mysql को स्थापित करने के लिए "काढ़ा" का उपयोग किया है:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

xxx = mysql2 रत्न का संस्करण जिसे आप
yyy स्थापित करना चाहते हैं = mysql का संस्करण जिसे आपने ls /usr/local/Cellar/mysqlइसे खोजने के लिए स्थापित किया है।


यहां पूछे गए सभी प्रकार के प्रश्नों के ~ 10 उत्तर दिए गए ... आपने इसे हल किया। धन्यवाद :)
स्टेन

7

क्या आपने प्रयोग करने की कोशिश की है

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

रत्न स्थापना को पूरा करने के लिए आवश्यक MySQL पुस्तकालयों के लिए मार्ग निर्देशिका के स्थान के साथ-साथ MySQL पुस्तकालयों को निर्दिष्ट करने के लिए?

स्रोत: MySQL रत्न स्थापित करें ERROR: मणि मूल एक्सटेंशन बनाने में विफल MySQL फ़ोरम :: Ruby :: Ruby के लिए MySQL बाइंडिंग स्थापित करने के साथ आवश्यक मदद


बढ़िया काम किया। मुझे एक अलग पथ का उपयोग करना था, जिसे मैंने कॉल करके पाया which mysqlऔर फिर libवहां से डायरेक्टरी ढूंढी ।
जोशुआ पिंटर

7

यदि आप yum try का उपयोग कर रहे हैं:

sudo yum install mysql-devel

इसने मेरे लिए एक अमेज़ॅन EC2 माइक्रो इंस्टेंस, सेंटोस आधारित काम किया।
लेनन

5

इसने मेरी समस्या को एक बार विंडोज में हल किया:

subst X: "C:\Program files\MySQL\MySQL Server 5.5" 
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt 
subst X: /D

मैं स्रोत पोस्ट करने वाला था, लेकिन मुझे लगता है कि उपयोगकर्ता रितेश कुमार पहले ही ऐसा कर चुके हैं। तो उसकी योग्यता, मेरी नहीं।
कार्लोस पर्डिला

यदि आपके gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --without-opt-dir
परिवाद में

5

अगर आपको अभी भी परेशानी हो रही है…।

स्थापित करने का प्रयास करें

   sudo apt-get install ruby1.9.1-dev

4

मैं विंडोज 7 पर इस मुद्दे था। यह स्पष्ट रूप से एक असंगति मुद्दा है और समाधान इस प्रकार है:

libmySQL.dllफ़ाइल को पुराने InstantRails इंस्टॉलर से डाउनलोड करें । यह InstantRails GitHub रेपो से उपलब्ध है ।

अगला, उस फ़ाइल को अपने रूबी / बिन फ़ोल्डर में कॉपी करें।

अब, आप जाने के लिए अच्छे हैं;)


1
मानव संसाधन विकास मंत्री। :( मैंने यह कोशिश की, लेकिन अभी भी वहाँ त्रुटि है जब चलाने की कोशिश कर रहा हूँ bundle install
aakoch

3

मुझे यह त्रुटि भी मिली। विकास पैकेजों को स्थापित करके हल किया गया। मैं आर्च का उपयोग कर रहा हूं और यह था:

sudo pacman -S base-devel

जो स्थापित:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

लेकिन मुझे लगता है कि यह वास्तव में बनाने और जीसीसी की जरूरत है। त्रुटि आउटपुट ने कहा (मेरी मशीन पर, अन्य के बीच):

"आपको पहले विकास उपकरण स्थापित करना होगा।"

इसलिए यह एक स्पष्ट निर्णय था और इससे मदद मिली।


3

आपको कुछ निर्भरताएँ स्थापित करनी होंगी

sudo apt-get install libmysql-ruby libmysqlclient-dev

3

डेबियन स्ट्रेच पर मेरे लिए काम करने वाला पैकेज डिफॉल्ट-लिबस्मिसक्लेकिएंट-देव था

sudo apt-get update && apt-get install -y default-libmysqlclient-dev


3

मेरे मामले में इससे मदद मिली:

$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"

फिर:

gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

परिणाम:

Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed

इस पोस्ट को देखें (चेतावनी: जापानी भाषा के अंदर)।


3

उबंटू पर (18.04)

मैं निम्नलिखित समस्याएँ हल कर रहा था:

sudo apt-get install build-essential libmysqlclient-dev
gem install mysql2

संदर्भ


2

मैं अपने मैक पर इस त्रुटि में चल रहा था और मैंने पाया कि इस त्रुटि को दूर करने के लिए मुझे mysql 32bit से mysql 64 बिट में अपग्रेड करने की आवश्यकता है। मैं एक Intel macbook पर OSX 10.6 चला रहा था, जिसमें रूबी 1.9.2 और rails3.0.0 था

मणि संकलित करने के लिए आवश्यक "मेक" जैसे यूनिक्स उपयोगिताओं को प्राप्त करने के लिए मुझे xcode स्थापित करने की भी आवश्यकता थी।

एक बार यह हो जाने के बाद मैं बिना किसी त्रुटि के मणि स्थापित mysql और मणि स्थापित mysql2 चलाने में सक्षम था।


1

विंडोज यूजर के लिए: आप लिब सेट करें और अपने mysql का पथ शामिल करें, उदाहरण के लिए, यदि आप xampp का उपयोग कर रहे हैं, तो आप इसे पसंद कर सकते हैं:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

1

समाधान केवल मैक ओएस एक्स पर काम करता है

यदि आपने MySQL को homebrew के साथ स्थापित किया है, तो मेरे लिए जो काम किया था वह MySQL की स्थापना रद्द कर रहा था, और MySQL वेबसाइट ( https://www.mysql.com/ ) के माध्यम से MySQL समुदाय संस्करण स्थापित कर रहा था ।

स्थापित होने के बाद , यदि आपको अनुमति से वंचित समस्या हो रही है, तो बस कमांड दर्ज करें gem install mysql2या यदि आवश्यक हो sudo gem install mysql2


0

मुझे मैक ओएस एक्स 10.6.6 पर 1 द्वारा निर्मित मणि मिला है। यह सुनिश्चित करना कि डेवलपर टूल पैकेज 2 स्थापित है) वर्तमान MySQL पैकेज (मेरे मामले में 5.5.8) को स्रोत 3 से डाउनलोड करना) cmake.org 4 से cmake टूल इंस्टॉल करना ) Mysql डिस्ट्रीब्यूशन फाइल 5 से INSTALL-SOURCE के सेक्शन 2.11 में दिए गए निर्देशों का पालन करते हुए) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include मणि सफलतापूर्वक बनाया गया, लेकिन डॉक्यूमेंट में दो त्रुटियां हैं जो rdoc और ri के बारे में शिकायत करती हैं। लेकिन अब जब मुझे 'mysql2' की आवश्यकता होती है, तो मुझे ए

LoadError: no such file to load -- mysql2/mysql2

मैं उम्मीद कर रहा था कि मुझे जो त्रुटि मिलेगी, वह यह थी कि libmysqlclient.16.dylib नहीं मिला, क्योंकि हमें लगा कि किसी अन्य पोस्ट में (install_name_tool के लिए खोज करें)।

मेरे $ PATH में / usr / स्थानीय / mysql है (यह वह जगह है जहां मेरा स्रोत और निर्मित फाइलें स्थित हैं), इसलिए मैं थोड़ा स्टम्प्ड हूं। अगर किसी के पास कोई विचार है, तो मैं कुछ घंटों की नींद के बाद वापस जाँच करूँगा।



0

आपके द्वारा mysql-dev समस्याएँ ठीक करने के बाद, आपको खराब mysql2 इंस्टॉल को निकालने की आवश्यकता हो सकती है। $ बंडल स्थापित करने के बाद संदेशों को ध्यान से देखें। आपको करना पड़ सकता है

rm -rf vendor/cache/
rm -rf ./Zentest

यह खराब mysql2 इंस्टॉलेशन को हटा देगा ताकि एक अंतिम $ बंडल इंस्टाल एक अच्छा बना सके।



0

"आपको पहले विकास उपकरण स्थापित करना होगा।" मैक ओएस एक्स माउंटेन लायन में अपग्रेड करने के बाद mysql2 मणि ​​को स्थापित करने की कोशिश करते समय त्रुटि । जाहिरा तौर पर यह उन्नयन कमांड लाइन संकलक को हटा देता है।

तै होना:

  • मैंने Xcode के अपने बहुत पुराने संस्करण को अनइंस्टॉल कर दिया (/ डेवलपर / पुस्तकालय में स्क्रिप्ट की स्थापना रद्द की)। फिर / डेवलपर निर्देशिका को हटा दिया गया।
  • AppStore में गया और Xcode डाउनलोड किया।
  • Xcode लॉन्च किया और वरीयताएँ -> डाउनलोड में चला गया, और कमांड लाइन टूल स्थापित किया।

0

आपको यह समस्या इसलिए हो रही है क्योंकि आपने MySql इंस्टॉल नहीं किया है। Mysql2 मणि ​​स्थापित करने से पहले। MySQL स्थापित करें। उसके बाद mysql2 रत्न स्थापित होगा।


0

मैं केवल मैक उपयोगकर्ताओं के लिए इस उत्तर को विशेष रूप से जोड़ना चाहता था ।

जब तक मैंने अपना xcode अपडेट नहीं किया तब तक मेरा सर्वर पूरी तरह से ठीक चल रहा था। मेरे रेल सर्वर को शुरू करते समय त्रुटि इस तरह दिखाई गई थी

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

और त्रुटि संदेश के अंत में mysql2 मणि ​​स्थापित करने का सुझाव था। इसलिए जब मैंने इसे स्थापित करने का प्रयास किया तो मुझे इस प्रश्न में उपर्युक्त त्रुटि मिली। मुझे मिली त्रुटि इस प्रकार है

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

तो जैसा कि इस पोस्ट में सुझाया गया है कि मैंने 'ब्रुअ इंस्टॉल मायस्कल' की कोशिश की और यह कहते हुए शांत कर दिया कि मायस्कल संस्करण तो पहले से ही स्थापित है। लेकिन यह कहने से पहले चेतावनी थी

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

फिर मैंने यह कोशिश की sudo xcodebuild -licenseऔर अंत में 'सहमत' टाइप करें। लाइसेंस के लिए सहमत होने के लिए आपको रूट होना होगा।

इसके बाद, मैंने फिर से बंडल स्थापित करने की कोशिश की और फिर सब कुछ सामान्य रूप से ठीक काम कर रहा है। [यहां तक ​​कि इस xcode अपडेशन के कारण, मुझे अपने टॉवर के साथ भी समस्या थी।]


0

libmysql-ruby बाहर चरणबद्ध और प्रतिस्थापित किया गया है। नया आदेश:

 sudo apt-get install ruby-mysql libmysqlclient-dev
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.