ActiveRecord.... activerecord-mysql-adapter

Это сводит меня с ума от сумасшествия.

Я пытаюсь создать простое приложение для начинающих с использованием ActiveRecord для выполнения простых задач базы данных. Я НЕ использую рельсы.

Я продолжаю получать ошибку:

RuntimeError: Please install the mysql adapter: `gem install activerecord-mysql-adapter` (Could not find mysql (~> 2.8.1) amongst [actionmailer-3.1.3, actionpack-3.1.3, activemodel-3.1.3, activerecord-3.1.3, activerecord-sqlserver-adapter-3.1.4, activeresource-3.1.3, activesupport-3.1.3, ansi-1.4.1, arel-2.2.1, bigdecimal-1.1.0, builder-3.0.0, bundler-1.0.21, capistrano-2.9.0, coffee-rails-3.1.1, coffee-script-2.2.0, coffee-script-source-1.1.3, daemons-1.1.4, erubis-2.7.0, eventmachine-0.12.10, execjs-1.2.9, highline-1.6.8, hike-1.2.1, hpricot-0.8.5, i18n-0.6.0, io-console-0.3, jquery-rails-1.0.19, json-1.6.3, mail-2.3.0, mime-types-1.17.2, minitest-2.5.1, multi_json-1.0.4, net-scp-1.0.4, net-sftp-2.0.5, net-ssh-2.2.1, net-ssh-gateway-1.1.0, nokogiri-1.5.0, polyglot-0.3.3, rack-1.3.5, rack-cache-1.1, rack-mount-0.8.3, rack-protection-1.1.4, rack-ssl-1.3.2, rack-test-0.6.1, rails-3.1.3, railties-3.1.3, rake-0.9.2.2, rdoc-3.11, rockhands-0.0.6, sass-3.1.11, sass-rails-3.1.5, shotgun-0.9, sinatra-1.3.1, sprockets-2.0.3, sqlite3-1.3.4, thin-1.3.1, thor-0.14.6, tilt-1.3.3, treetop-1.4.10, turn-0.8.3, tzinfo-0.3.31, uglifier-1.1.0])

Этот жемчуг, очевидно, не существует на рубигемах, или это было бы легко...

Как еще я должен это делать?

Вот важная часть

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql',
  :host     => 'localhost',
  :database => 'test',
  :username => 'root',
  :password => 'password'
)

Я могу видеть все, что меняю: адаптер в хэш-то, что он вставляет в ошибку "gem install activerecord-yousuck-adapter"

Я читал о каждом руководстве по google, которое я могу найти... по моему умному концу. Я думал, что это будет, по крайней мере, немного легче... Я потратил часы и часы, просто исправляя ошибки драгоценного камня. Дней на самом деле, и я еще не написал никакого реального кода ruby. как расстраивает.

Ответ 1

Не уверен, что это ваша проблема, но попробуйте использовать драйвер adapter: mysql2. Это рекомендуется в любом случае, так как он быстрее, чем стандартный mysql.

Вы по-прежнему получаете ту же проблему?

Ответ 2

После нескольких часов борьбы с этой проблемой, ответ Tallboy работал у меня на OS X:

sudo ln -s/usr/local/mysql/lib/libmysqlclient.18.dylib/usr/lib/libmysqlclient.18.dylib

К сожалению, его ответ был скрыт в одном из комментариев выше; вам нужно щелкнуть ссылку, чтобы развернуть комментарий. Я получил сообщение об ошибке "undefined метод" init "для Mysql: Class"

Ответ 3

  • Я выпустил команду bundle install, которая не решила проблему.

  • Я нашел gemfile, расположенный в c:\Sites\< > \Gemfile

  • Добавлен gem 'mysql' в файл, отредактировав его в блокноте ++

  • Затем проверили, доступен ли Mysql в пакете, используя bundle show mysql

  • После чего, когда я выпустил rake db: create, я получил указанный файл, не удалось найти ошибку, которая ссылалась на libmysql.dll

  • Вы можете найти то же самое в своей установке mysql, или вы можете скачать по ссылке http://www.vertstudios.com/blog/libmysqldll-32-bit-download/

  • Скопируйте этот файл в папку bin в каталоге Ruby. В моем случае я использовал rubyinstaller, поэтому он был C:\RailsInstaller\Ruby1.9.3\bin

Voila. Это сделано.

^ Обратите внимание, что ссылка для загрузки может привести к неправильной версии библиотеки. В этом случае лучше всего следовать ссылке, указанной в сообщении, которое вы получите сразу после установки gem mysql (2), чтобы получить правильную версию библиотеки, иначе он все равно не будет работать.

Ответ 4

Мы столкнулись с той же проблемой (потому что мы переходим от jruby к ruby)

Решено:

  • адаптер: mysql2 (в database.yml)
  • gem 'mysql2' (в gemfile)