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

Я пытаюсь установить MySQL до последней версии из-за какой-то ошибки при установке. Я запускаю команду gem install mysql и получаю следующее:

Создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке mysql: ОШИБКА: не удалось создать собственное расширение gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 7: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 mkmf.rb не может найти файлы заголовков для ruby ​​в / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Файлы Gem останутся установленными в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для проверки. Результаты регистрируются в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Я искал и пробовал множество вещей, от установки определенных версий до попытки переустановить ruby ​​безуспешно.

Есть идеи, где я могу ошибаться?

Я пытаюсь установить MySQL до последней версии из-за какой-то ошибки при установке. Я запускаю команду gem install mysql и получаю следующее:

Создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке mysql: ОШИБКА: не удалось создать собственное расширение gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 7: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 mkmf.rb не может найти файлы заголовков для ruby ​​в / System /Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Файлы Gem останутся установленными в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для проверки. Результаты записываются в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

Я искал и пробовал множество вещей, от установки определенных версий до попытки переустановить Ruby без особого успеха.

Есть идеи, где я могу ошибаться?

РЕДАКТИРОВАТЬ: я установил XCode со своего DVD Snow Leopard, и ошибка немного изменилась на следующее:

Создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке mysql: ОШИБКА: не удалось создать собственное расширение gem.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 4: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 7: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 extconf.rb: 17: предупреждение: небезопасный каталог с возможностью записи в мире / usr / bin в PATH, режим 040777 проверка на mysql_query () в -lmysqlclient ... без проверки на main () в -lm ... да проверка на mysql_query () в -lmysqlclient ... без проверки на main () в - lz ... да проверка на mysql_query () в -lmysqlclient ... без проверки на main () в -lsocket ... без проверки на mysql_query () в -lmysqlclient ... без проверки на main () в -lnsl. .. нет проверки для mysql_query () в -lmysqlclient ... нет проверки для main () в -lmygcc ... нет проверки для mysql_query () в -lmysqlclient ... нет * extconf.rb не удалось * Не удалось создать Makefile по какой-то причине, возможно отсутствие необходимых библиотек и / или заголовков. Дополнительные сведения см. В файле mkmf.log. Вам могут потребоваться параметры конфигурации.

Предоставляемые параметры конфигурации: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir} / include --with-opt-lib - без-opt-lib = $ {opt-dir} / lib --with-make-prog --without-make-prog --srcdir =. --curdir --ruby = / System / Library / Frameworks / Ruby.framework / Versions / 1.8 / usr / bin / ruby ​​--with-mysql-config --without-mysql-config --with-mysql-dir - без-mysql-dir --with-mysql-include --without-mysql-include = $ {mysql-dir} / include --with-mysql-lib --without-mysql-lib = $ {mysql-dir} / lib --with-mysqlclientlib --without-mysqlclientlib --with-mlib --without-mlib --with-mysqlclientlib --without-mysqlclientlib --with-zlib --without-zlib --with-mysqlclientlib --without- mysqlclientlib --with-socketlib --without-socketlib --with-mysqlclientlib --without-mysqlclientlib --with-nsllib --without-nsllib --with-mysqlclientlib --without-mysqlclientlib --with-mygout-lib --with-mygout-lib mygcclib --with-mysqlclientlib --without-mysqlclientlib

Файлы Gem останутся установленными в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 для проверки. Результаты регистрируются в /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

выполнение "which mysql" в командной строке ничего не возвращает, что означает, что он не распознает его. Я также установил опцию системных настроек MySQL, и я не могу остановить MySQL. Теперь я совершенно застрял в том, что делать!

ИЗМЕНИТЬ ИЗМЕНИТЬ

Я только что полностью переустановил MySQL, используя это руководство http://hivelogic.com/articles/installing-mysql-on-mac-os-x

К сожалению, это тоже не сработало, я все еще получаю те же ошибки. Я даже не могу выполнить mysql -uroot в командной строке, я получаю сообщение об ошибке:

ОШИБКА 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет '/tmp/mysql.sock' (2)

Так что я думаю, что перепробовал все.

** РЕШЕНО *

Извините, ребята, причина того, что это не работает, заключалась в путях MySQL. Я писал об этом здесь: http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/


person Kezzer    schedule 30.01.2010    source источник


Ответы (13)


Установка гема mysql в OSX

в терминале .. Сначала выполните команду «locate mysql_config» , а затем замените путь в следующей команде на то, где находится этот файл.

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed
person Trevoke    schedule 03.02.2010
comment
Я установил XAMPP для OSX, поэтому моя команда была: gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config. Sudo не требуется! - person thesmart; 07.11.2013
comment
Просто к сведению. Мне все еще не удалось установить, но потом я понял, что / usr / local / mysql / bin не находится в моей переменной env PATH. Как только я получил это в своем PATH, я смог установить его без проблем. - person justspamjustin; 28.01.2014
comment
Мне пришлось sudo locate mysql_config получить пути конфигурации. В противном случае возвращается сообщение: WARNING: The locate database (/var/db/locate.database) does not exist. ... - person RNickMcCandless; 23.07.2014
comment
Мне пришлось установить инструменты командной строки xcode, прежде чем этот ответ в конечном итоге сработает для меня. См. Соответствующий ответ: stackoverflow.com/questions/761521/, а затем попробуйте sudo gem install mysql1 etc, как в этом ответе :) - person Josh Burson; 17.03.2015
comment
@JoshBurson Если вам нужно полное руководство по установке mysql с нуля на OSX, я думаю, что это совсем другая история. - person Trevoke; 17.03.2015
comment
Абсолютно. Однако я не устанавливал с нуля. Я прокомментировал, чтобы помочь другим, которые могут столкнуться с проблемами, как и я. - person Josh Burson; 17.03.2015

В системах Debian (или Ubuntu) просто установите пакет libmysqlclient-dev, используя:

sudo apt-get install libmysqlclient-dev

а потом:

gem install mysql

Он будет установлен без ошибок.

person cartoonist    schedule 03.08.2011
comment
Большой! Работал в Ubuntu 14.10 64 бит - person miquel; 21.12.2014
comment
У меня тоже работал, Ubuntu 14.4 LTS надежный - person user3632930; 28.10.2015

Прежде всего вам нужно различать MySQL как сервер, MySQL как клиент и привязки Ruby к MySQL.

Я не знаком с Mac, но для ОС * nix вам нужно установить MySQL через диспетчер пакетов. Чтобы установить привязки Ruby с помощью

gem install mysql

вам нужны заголовки разработки ruby ​​(в Ubuntu это пакет ruby-dev) и заголовки разработки MySQL-Client (в настоящее время libmysqlclient16-dev в Ubuntu). Я не знаю, называются ли они по-разному на Mac, но после того, как вы их установили, привязки Ruby должны быть установлены без каких-либо ошибок.

person Aurril    schedule 03.02.2010
comment
Несомненно, есть мультиупакованная версия, которая делает и то, и другое. Я тоже прошел через этот процесс. Я думаю, что вы правы, мне нужно различать эти две вещи, поскольку это была моя проблема. Другой вариант, возможно, - установить MAMP и пользоваться им? Что мне тогда понадобится? - person Kezzer; 03.02.2010
comment
MAMP означает Mac, Apache, MySQL, Php. Таким образом, вам все равно понадобится MySQL-сервер, а также Apache 2 и библиотеки php для apache. Я не уверен, можно ли просто выбрать MAMP в диспетчере пакетов, и он установит все необходимые файлы. Может быть, пользователь Mac сможет вам помочь. - person Aurril; 03.02.2010
comment
В самом деле, это не удовлетворяло бы потребности в MAMP, но это был простой способ обслуживания экземпляра MySQL. - person Kezzer; 03.02.2010
comment
Это было именно то, что мне нужно в Ubuntu: sudo apt-get install ruby-dev и sudo gem install mysql. Спасибо! - person Dan Breslau; 27.02.2010
comment
да, это сработало: 'sudo apt-get install ruby-dev libmysqlclient16-dev', затем 'sudo gem install mysql' - person Travis Reeder; 08.09.2010
comment
Спасибо Aurril - в моем случае не хватало ruby-dev! - person nevelis; 06.10.2010

Некоторые люди нашли этот пост полезным.

Кроме того, мне нужно было сначала ввести это:

yum install mysql-devel

а потом:

gem install mysql 

Некоторым людям может потребоваться ввести:

gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config
person Guy Saban    schedule 01.11.2011
comment
Чувак, если бы я мог дать тебе двоих, я бы сделал это! Хотя стоит отметить, что эта команда yum может быть полезна только с некоторыми разновидностями LINUX. В моем случае CentOS 6.0 - person Onema; 15.03.2012

на OSX mountain Lion: если у вас установлен brew, тогда brew install mysql и следуйте instructions по созданию тестовой базы данных с mysql на вашем компьютере. Вам не нужно проходить весь путь, мне не нужно было. После того, как я это сделал, я смог связать установку и рейк.

person downrightmike    schedule 03.01.2013
comment
Это было единственное решение, которое сработало для меня! Ура, дружище! - person Cynthia Sanchez; 20.06.2016

Чтобы решить

Gem :: Ext :: BuildError: ОШИБКА: не удалось создать ошибку собственного расширения gem для mysql2,

Я думаю, что libmysql-ruby был изменен на ruby-mysql

Просто попробуйте следующие команды,

sudo apt-get install ruby-mysql

& тогда

sudo apt-get install libmysqlclient-dev
person rahul patil    schedule 05.11.2015

У меня был подобный опыт, вот что я пробовал

Во-первых, я попытался установить необходимые пакеты mysql, выполнив команду ниже в моем терминале

sudo apt-get install build-essential libmysqlclient-dev

Во-вторых, я попытался обновить rubygems в своей системе, выполнив команду ниже в моем терминале

sudo gem update --system

Но я все еще испытывал ту же проблему.

Вот что у меня сработало

После долгих исследований я понял, что использую почти устаревшую версию гема mysql. Мне просто нужно было использовать гем mysql2 (гем mysql2), а не mysql gem, поэтому я исправил его, выполнив команду ниже в моем терминале

gem install mysql2

У меня это сработало. Перед запуском последней команды убедитесь, что вы выполнили первую и вторую команды, чтобы убедиться, что в вашей системе все в порядке.

Это все.

Надеюсь, это поможет

person Promise Preston    schedule 27.08.2019
comment
эта команда спасла меня gem install mysql2 спасибо - person madamis confidential; 08.05.2021

Я также забыл изначально установить MySQL. Следование этому руководству очень помогло.

http://www.djangoapp.com/blog/2011/07/24/installation-of-mysql-server-on-mac-os-x-lion/

А также добавление этих строк в мой .profile:

export PATH="/usr/local/mysql/bin:$PATH"
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
person Richard Burton    schedule 15.06.2012

вы можете попробовать переустановить последнюю версию xcode / dev. инструменты для снежного барса - это должно исправить ваши ошибки

person roman    schedule 30.01.2010
comment
Это было одно из первых, что я сделал. На моем компьютере установлена ​​версия XCode для Snow Leopard. - person Kezzer; 03.02.2010

если вы устанавливаете из исходного кода, вот руководство. Будем рады, если он поможет http://raihan90.blogspot.com/2009/03/mysql-step-by-step-hacking-into-mysql.html

person Raihan Alam    schedule 03.02.2010

Внимание: необходимо указать - ключ, а затем --with-mysql-config = / usr / local / mysql / bin / mysql_config

person Vestel    schedule 03.02.2010
comment
Опять же, этот ответ витает во многих местах. В моем случае это не работает. Кроме того, я полагаю, что mysql для меня не существовал в / usr / local /. - person Kezzer; 03.02.2010

Если вы используете Percona Mysql server

$ yum установить Percona-Server-devel-55

$ gem установить mysql

person AlexeyKa    schedule 01.02.2013

В вашей ОС Ubuntu необходимо установить библиотеку для клиента mysql sudo apt-get install libmysqlclient-dev

После этого просто установите bundle или bundle install

person Mayur Kambariya    schedule 07.10.2018