Драйвер MySQL для Rails в Windows 7 x64 - PullRequest
20 голосов
/ 13 октября 2009

У меня проблема с подключением к базе данных MySQL на моем недавно установленном компьютере с Windows 7. Я получаю эту ошибку при попытке перенести базу данных.

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install 
the mysql gem and try again: gem install mysql.
rake aborted!
193: %1 is not valid Win32 application - C:/Ruby/lib/ruby/gems/1.8/gems/mysql-2.8.1-x86-mswin32/lib/1.8/mysql_api.so

Я сейчас установил

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
mysql version 5.0.86  for Win64
gem 1.3.1
mysql-2.8.1-x86-mswin32

Ответы [ 10 ]

51 голосов
/ 18 октября 2009

У моего коллеги была похожая проблема при запуске rails на Windows 7. Он должен был заменить libmySQL.dll (в ПУТИ) на файл из InstantRails .

4 голосов
/ 13 октября 2009

Я потратил часов , пытаясь заставить MySQL и Rails хорошо играть на Windows (хотя и в XP, как в 32-, так и в 64-битной версиях). Я, наконец, сдался, так как мой рабочий бокс работал под управлением Linux (на котором хорошо работают Rails и MySQL) и просто использовал SQLite 3 для разработки. Нет головной боли, чтобы заставить его работать, и он работает достаточно быстро для целей разработки.

Однако я слышал о некоторых людях, которым посчастливилось заменить одну из библиотек, предоставляемых гемом, на ту, что была предоставлена ​​официальным дистрибутивом MySQL. Кроме того, некоторые люди просто не имели этой библиотеки DLL, что вызывало проблемы. В конце концов, у меня это не сработало, но, надеюсь, вам повезет больше.

2 голосов
/ 05 января 2011

Для Rails или DataMapper или чего-либо еще для общения с MySQL вам нужен 32-битный драйвер в Rails \ bin. Драйвер называется libmysql.dll. Даже если у вас 64-битный сервер, вам нужен 32-битный драйвер.

64-разрядный драйвер потерпит неудачу: ruby ​​/ gems / 1.8 / gems / do_mysql-0.10.2-x86-mingw32 / lib / do_mysql / 1.8 / do_mysql.so: 193:% 1 не является допустимым приложением Win32.

Неправильная 32-разрядная версия будет аварийно завершать работу с ошибкой выделения памяти или чем-то еще странным (предлагаемое решение взять libmysql.dll из другого проекта может не работать с более новыми версиями MySQL).

1 голос
/ 26 марта 2012

Перемотка вперед к марту 2012 года. Я решил эту проблему в Windows 7 x64), переименовав мой Ruby \ b \ bin \ libmysql.dll, а затем скопировав libmysql.dll из C: \ Program Files (x86) \ MySQL \ MySQL Connector C 6.0.2 \ lib \ opt to Ruby \ bin

На C: \ Program Files (x86) \ MySQL \ MySQL Workbench CE 5.2.37 была более новая версия libmysql.dll, но гему не понравилась не 6.x версия.

1 голос
/ 09 марта 2011

Решение этой проблемы заключается в простой установке 32-разрядной версии mysql.

1 голос
/ 03 января 2010

Я новичок в этом рельсе. Я только что прошел ту же проблему в Vista. после загрузки libmySQL.dll (в ПУТИ) из InstantRails он начинает работать.

sukumaaar@gmail.com

0 голосов
/ 18 декабря 2010

Я использую текущие версии всего на WinXP SP3: Ruby 1.9.2p0, MySQL 5.5, mysql 2.8.1. Эта проблема все еще существует, и для ее устранения мне пришлось скопировать Instant Rails libmysql.dll в мою папку C: \ Ruby192 \ bin. Сначала я скопировал файл libmysql.dll, поставляемый с MySQL 5.5, но это вызвало ошибку seq!

0 голосов
/ 07 декабря 2010

Добавление libmySQL.dll из InstantRails в каталог на моем пути тоже сработало. Это действительно грустно, что мы должны делать такие вещи, хотя. Мне бы хотелось, чтобы гем или сам MySql правильно установили эту DLL.

0 голосов
/ 02 июля 2010

Другой вариант, который сработал для меня, - это загрузить 32-битную версию mysql для Windows и просто сохранить libmysql.dll и добавить расположение этой DLL в путь Windows.

0 голосов
/ 27 декабря 2009

Может ли это быть связано с Ruby on Rails Win7 x64? ? Если да, то что снова было исправлением (не могу понять из первого ответа)?

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