سؤال

أواجه بعض المشاكل عند محاولة التثبيت mysql2 جوهرة للقضبان. عندما أحاول تثبيته عن طريق التشغيل bundle install أو gem install mysql2 يعطيني الخطأ التالي:

خطأ في تثبيت MySQL2: خطأ: فشل في إنشاء امتداد أصلي للأحجار الكريمة.

كيف يمكنني إصلاح هذا وتثبيت بنجاح mysql2?

هل كانت مفيدة؟

المحلول

على Ubuntu/Debian والتوزيعات الأخرى باستخدام الكفاءة:

sudo apt-get install libmysql-ruby libmysqlclient-dev

طَرد libmysql-ruby تم التخلص التدريجي واستبداله ruby-mysql. هذه هو المكان الذي وجدت فيه الحل.

إذا كان الأمر أعلاه لا يعمل بسبب libmysql-ruby لا يمكن العثور عليها ، يجب أن يكون ما يلي كافيًا:

sudo apt-get install libmysqlclient-dev

على Red Hat/Centos والتوزيعات الأخرى باستخدام Yum:

sudo yum install mysql-devel

على Mac OS X مع البيرة:

brew install mysql

نصائح أخرى

أنا على جهاز Mac وأستخدمه البيرة لتثبيت برامج مفتوحة المصدر. اضطررت إلى تثبيت أدوات Mac Dev لتثبيت Homebrew ، ولكن بعد ذلك كان الأمر بسيطًا:

brew install mysql

لتثبيت MySQL. لم أواجه مشكلة في جوهرة mySQL منذ ذلك الحين.

هنا حل ل مستخدمي Windows, ، أتمنى أن يساعد!

باستخدام MySQL مع Rails 3 على Windows

  • تثبيت 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=5555dotnetfx40_full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx؟id=17718

استخدم جهاز مطور التثبيت الافتراضي

-ما خادم mysql config-
الميناء: 3306
اسم خدمة Windows: MySQL55
MySQL Root Pass: Root (يمكنك تغيير هذا لاحقًا)
(اسم المستخدم: الجذر)
-ما خادم mysql config-

--- لتركيب MySQL ---


--- قم بتثبيت GEM MySQL2 ---

الأهمية: افعل هذا مع سطر أوامر Git Bash(تم تثبيت هذا مع RailsInstaller) -> ابدأ/git bash

GEM تثبيت mysql2-'-with-mysql-lib = "c: program files mysql mysql server 5.5 lib"-with-mysql-include = "c: program files mysql mysql server 5.5 تضمن"'

الآن يجب أن تكون الجوهرة قد تم تثبيتها بشكل صحيح

أخيرا نسخ ملف libmysql.dll من
C: Program Files mysql mysql server 5.5 lib
ل
C: Rails ruby1.9.2 bin

--- قم بتثبيت GEM MySQL2 ---


ستتمكن الآن من استخدام تطبيق Rails الخاص بك مع MySQL ، إذا لم تكن متأكدًا من كيفية إنشاء تطبيق Rails 3 مع قراءة MySQL على ...


--- احصل على تطبيق Rails 3 مع MySQL ---

فتح موجه الأوامر (وليس git bash) -> ابدأ/cmd
انتقل إلى المجلد الخاص بك (C: Sites)
إنشاء تطبيق Rails جديد

rails new world

حذف الملف C: Sites World Public Index.html
تحرير الملف C: Sites World Config Roates.RB
أضف هذا السطر -> الجذر: إلى => "المدن#فهرس"

فتح موجه الأوامر (إنشاء طرق عرض ووحدات تحكم)

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



قم بتحرير الملف C: sites world app models 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

إضافة إلى Gemfile

gem 'mysql2'

يفتح موجه الأمر Windows CMD ، وليس git bash (قم بتشغيل التطبيق الخاص بك!)
انتقل إلى مجلد التطبيق الخاص بك (C: Sites World)

rails s

افتح متصفحك هنا -> http: // localhost: 3000

--- احصل على تطبيق Rails 3 مع MySQL ---

لدي العديد من أجهزة الكمبيوتر ، معالج 32 و 64 بت ، يتم تشغيلها على إصدار Ubuntu Linux ، Maverick (10.10).

واجهت نفس المشكلة ، وبالنسبة ليsudo apt-get install libmysql-ruby libmysqlclient-devهل الوظيفة !!!

طريقة أخرى لمستخدمي MacOS

إذا كنت تستخدم "Brew" لتثبيت 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 للعثور عليه.

هل حاولت استخدام

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

لتحديد موقع دليل thebase وكذلك المسار إلى مكتبات MySQL الضرورية لإكمال تثبيت الأحجار الكريمة؟

مصادر:خطأ في تثبيت MySQL GEM: فشل في إنشاء امتداد محلي GEM منتديات MySQL :: Ruby :: المساعدة المطلوبة مع تثبيت MySQL ملزمة لروبي

إذا كنت تستخدم yum جرب:

sudo yum install mysql-devel

هذا حل مشكلتي مرة واحدة في النوافذ:

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

إذا كنت لا تزال تواجه مشكلة ...

حاول التثبيت

   sudo apt-get install ruby1.9.1-dev

لقد واجهت هذه المشكلة على Windows 7. يبدو أن هذه مشكلة عدم التوافق والحل كما يلي:

تحميل libmySQL.dll ملف من مثبت instantrails الأقدم. وهي متوفرة من instantrails github repo.

بعد ذلك ، انسخ هذا الملف في مجلد Ruby/Bin الخاص بك.

الآن ، أنت جيد للذهاب ؛)

ل ماكوس موهافي:

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

لقد حصلت على هذا الخطأ أيضًا. تم حلها عن طريق تثبيت حزم التطوير. أنا أستخدم القوس وكان:

sudo pacman -S base-devel

الذي تم تثبيته:

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

لكنني أعتقد أنه يحتاج في الواقع إلى صنع و GCC. قال إخراج الخطأ (على الجهاز الخاص بي ، من بين آخر):

"عليك تثبيت أدوات التطوير أولاً."

لذلك كان قرارًا واضحًا وساعد.

يجب عليك تثبيت بعض التبعيات

sudo apt-get install libmysql-ruby libmysqlclient-dev

على دبيان تمتد الحزمة التي نجحت بالنسبة لي الافتراضي-libmysqlclient-dev

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

كنت أواجه هذا الخطأ على جهاز Mac الخاص بي ووجدت أنني بحاجة إلى الترقية من MySQL 32bit إلى MySQL 64 بت للحصول على هذا الخطأ للرحيل. كنت أقوم بتشغيل OSX 10.6 على Intel MacBook Pro مع Ruby 1.9.2 و Rails3.0.0

كنت بحاجة أيضًا إلى تثبيت Xcode من أجل الحصول على أدوات UNIX مثل "صنع" مطلوب لتجميع الأحجار الكريمة.

بمجرد الانتهاء من ذلك ، تمكنت من تشغيل GEM تثبيت MySQL و GEM تثبيت MySQL2 دون خطأ.

في حالتي ساعد هذا:

$ 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

انظر هذا المنصب (تحذير: اللغة اليابانية في الداخل).

بالنسبة لمستخدم Windows: يمكنك تعيين LIB وتضمين مسار MySQL الخاص بك ، على سبيل المثال ، إذا كنت تستخدم XAMPP ، فيمكنك الحصول على مثل هذا:

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

الحل يعمل فقط على Mac OS X

إذا كنت قد قمت بتثبيت MySQL مع Homebrew ، فإن ما نجح بالنسبة لي هو إلغاء تثبيت MySQL ، وتثبيت MySQL Community Edition عبر موقع MySQL (https://www.mysql.com/).

بعد التثبيت ، ما عليك سوى إعادة إدخال الأمر إلى gem install mysql2 أو إذا لزم الأمر ، sudo gem install mysql2, ، إذا كنت تحصل على الإذن من المشاكل.

حصلت على GEM المبنية على Mac OS X 10.6.6 by 1) التأكد من تثبيت حزمة أدوات المطورين 2) تنزيل حزمة MySQL الحالية (5.5.8 في حالتي) من المصدر 3) تثبيت أداة cmake من cmake.org 4 ) باتباع الإرشادات الواردة في القسم 2.11 من مصدر التثبيت من ملفات توزيع MySQL 5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/includeتم تصميم GEM بنجاح ، ولكن هناك خطأان في الوثائق التي يشكو منها RDOC و RI. لكن الآن عندما أحاول أن أتطلب "mysql2" أحصل على ملف

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

كنت آمل أن يكون الخطأ الذي ستحصل عليه هو أن libmysqlclient.16.dylib لا يمكن العثور عليها لأننا اكتشفنا ذلك في منشور آخر (ابحث عن install_name_tool).

يحتوي مسار $ الخاص بي/usr/local/mysql فيه (هذا هو المكان الذي توجد فيه المصدر والملفات المبنية) ، لذلك أنا متعثر قليلاً. إذا كان لدى أي شخص أي أفكار ، فسوف أتحقق مرة أخرى بعد بضع ساعات من النوم.

إذا كان لا يزال يحصل على خطأ ، فاتبع خطوات تثبيت GEM MySQL2 على القضبان 3 على -

http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html

حيث تمكن معظم المستخدم من تثبيت GEM MySQL2.

بعد تصحيح مشكلات MySQL-DEV ، قد تحتاج إلى إزالة تثبيت MySQL2 السيئ. انظر بعناية في الرسائل بعد تثبيت حزمة $. قد تحتاج إلى

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

سيؤدي ذلك إلى توضيح تثبيت MySQL2 السيئ بحيث يمكن لتثبيت حزمة $ النهائية إنشاء عملية جيدة.

قم بتنزيل الإصدار المناسب من mysqllib.dll ثم انسخه إلى Ruby Bin يعمل حقًا بالنسبة لي. اتبع هذا الرابط plass MySQL2 GEM تم تجميعها لمكتبة عميل MySQL خاطئة

حصلت على "عليك تثبيت أدوات التطوير أولاً." خطأ عند محاولة تثبيت GEM MySQL2 بعد الترقية إلى Mac OS X Mountain Lion. يبدو أن القيام بهذا الترقية يزيل مجمعي سطر الأوامر.

لإصلاح:

  • قمت بإلغاء تثبيت نسختي القديمة من Xcode (ركض البرنامج النصي إلغاء تثبيت /مطور /مكتبة). ثم حذف دليل /مطور.
  • ذهبت إلى AppStore وتنزيل Xcode.
  • تم إطلاق Xcode وذهب إلى التفضيلات -> التنزيلات ، وقام بتثبيت أدوات سطر الأوامر.

أنت تحصل على هذه المشكلة لأنك لم تقم بتثبيت MySQL. قبل تثبيت MySQL2 GEM. تثبيت MySQL. بعد ذلك سيتم تثبيت GEM MySQL2.

أردت فقط إضافة هذه الإجابة خصيصًا ل مستخدمي Mac.

كان الخادم الخاص بي يعمل بشكل جيد حتى قمت بتحديث Xcode الخاص بي. أثناء بدء تشغيل خادم Rails الخاص بي ، تم عرض الخطأ على هذا النحو

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)

وكان هناك اقتراح لتثبيت GEM MySQL2 في نهاية رسالة الخطأ. لذلك عندما حاولت تثبيته ، حصلت على الخطأ كما هو مذكور أعلاه في هذا السؤال. الخطأ الذي حصلت عليه على النحو التالي

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

لذلك كما هو مقترح في هذا المنشور ، حاولت "Brew Install MySQL" وتركت قائلاً إن إصدار MySQL تم تثبيته بالفعل. ولكن كان هناك تحذير قبل أن يقول

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 هذا ، واجهت مشكلة مع برج بلدي أيضًا.

libmysql-ruby تم التخلص التدريجي واستبداله. أمر جديد:

 sudo apt-get install ruby-mysql libmysqlclient-dev

لأولئك الذين يستخدمون Windows 7 و 64 بت mysql

إذا كنت ترغب في استخدام MySQL 64 بت ، فيجب عليك اتباع التعليمات هنا (ايضا هنا).

آسف على هذا يجب أن يكون تعليقا على إجابة Spacemonkey لكن ليس لدي سمعة كافية للقيام بذلك.

أريد أن أضيف أنه إذا كنت تستخدم MariaDB بدلاً من MySQL على CentOS 7 ، فأنت بحاجة فقط إلى تثبيت حزمة MariaDB المشتركة لإصلاح الخطأ.

yum install MariaDB-shared -y
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top