Ошибка установки mysql2: не удалось собрать собственное расширение gem - PullRequest
463 голосов
/ 31 августа 2010

У меня возникают проблемы при установке mysql2 gem для Rails. Когда я пытаюсь установить его, запустив bundle install или gem install mysql2, выдается следующая ошибка:

Ошибка установки mysql2: ОШИБКА: не удалось создать собственное расширение gem.

Как я могу это исправить и успешно установить mysql2?

Ответы [ 26 ]

887 голосов
/ 31 августа 2010

В Ubuntu / Debian и других дистрибутивах, использующих aptitude:

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 с Homebrew :

brew install mysql
58 голосов
/ 26 мая 2011

Я на Mac и использую homebrew для установки программ с открытым исходным кодом. Мне пришлось установить инструменты Mac Dev, чтобы установить homebrew, но после этого все было просто:

brew install mysql

для установки mysql. С тех пор у меня не было проблемы с самоцветами mysql.

34 голосов
/ 16 февраля 2012

вот решение для пользователей 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=5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id=17718Использовать установку по умолчанию Developer Machine

- MySQL Server Config- порт: 3306Имя службы Windows: MySQL55mysql root pass: root (вы можете изменить это позже)(имя пользователя: root) - MySQL Server Config-

--- для установки mySQL ---

--- Установить mysql2 Gem --- Важно: Сделайте это с помощью командной строки Git Bash (это было установлено с помощью railsinstaller) -> start / Git Bash gem install mysql2 - '--with-mysql-lib = "c: \ Program Files \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-include = "c: \ Program Files \MySQL \ MySQL Server 5.5 \ include "'
Теперь камень должен быть установлен правильно
Наконец, скопируйте файл libmysql.dll изC: \ Program Files \ MySQL \ MySQL Server 5.5 \ libвC: \ Rails \ Ruby1.9.2 \ Bin --- Установить mysql2 Gem ---

Теперь вы сможете использовать приложение Rails с MySQL, если вы не уверены, как создать приложение Rails 3 с MySQL, прочитанным на ...

--- Получить приложение Rails 3, работающее с MySQL --- Откройте командную строку (не Git Bash) -> start / cmdПерейдите в свою папку (c: \ Sites)Создать новое приложение для рельсов

rails new world

Удалить файл c: \ Sites \ world \ public \ index.htmlОтредактируйте файл c: \ Sites \ world \ config \ rout.rbдобавить эту строку -> root: to => 'towns # index'

Открыть командную строку (создать представления и контроллеры)

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 ---

20 голосов
/ 23 января 2011

У меня есть несколько компьютеров, 32- и 64-битный процессор, они работают под управлением Ubuntu Linux, Maverick (10.10).

У меня была такая же проблема, и для меня, sudo apt-get install libmysql-ruby libmysqlclient-dev сделал работу !!!

15 голосов
/ 30 сентября 2015

Другой способ для пользователей MacOS

Если вы использовали «brew» для установки mysql:

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

x.x.x = версия камня mysql2, который вы хотите установить
y.y.y = версия mysql, которую вы установили ls /usr/local/Cellar/mysql, чтобы найти ее.

7 голосов
/ 20 октября 2011

Если вы используете yum, попробуйте:

sudo yum install mysql-devel
7 голосов
/ 31 августа 2010

Вы пытались использовать

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

для указания местоположения каталога базы, а также пути к библиотекам MySQL, которые необходимы для завершения установки gem?

Источники: MySQL Gem Install ERROR: Не удалось создать собственное расширение gem Форумы MySQL :: Ruby :: Требуется помощь при установке привязки MySQL для Ruby

5 голосов
/ 09 августа 2011

Это решило мою проблему один раз в Windows:

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
5 голосов
/ 05 августа 2013

Если у вас все еще проблемы ...

Попробуйте установить

   sudo apt-get install ruby1.9.1-dev
4 голосов
/ 20 февраля 2011

У меня была эта проблема в Windows 7. По-видимому, это проблема несовместимости, и решение заключается в следующем:

Загрузите файл libmySQL.dll из более старой программы установки InstantRails.Он доступен в репозитории InstantRails GitHub .

Затем скопируйте этот файл в папку Ruby / bin.

Теперь все готово;)

...