RuntimeError với mysql2 và rails3 (Bundler)


76

Tôi gặp lỗi này

`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
  from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-

Đây là kết xuất của toàn bộ lỗi và cấu hình và tệp gem của tôi.


Tôi đã gặp phải vấn đề tương tự và sau một số phân tích, tôi có thể cài đặt thành công mysql2 trên các cửa sổ có rails3. Quá trình tôi làm theo được đưa ra trong bài đăng blog sau. kyybaventures.com/blog/installing-mysql2-gem-ruby-rails-windows Hy vọng, nó sẽ hữu ích để giải quyết vấn đề trên. Mani
maniempire

Câu trả lời:


0

Tôi đã gặp lỗi tương tự sau khi nâng cấp từ Ubuntu 11.10 lên 12.04. Đây là cách tôi khắc phục sự cố:

gem uninstall mysql2
bundle

Tôi nghĩ chìa khóa ở đây là 'phần mở rộng gốc' - tôi cho rằng khi cài đặt lần cuối, tôi đang sử dụng một phiên bản khác của mysql.

Installing mysql2 (0.3.11) with native extensions

101

Tôi đã gặp lỗi tương tự khi sử dụng rails 3.0.7 và mysql2 0.3.2. Giải pháp mà tôi tìm thấy ở đây là sử dụng phiên bản cũ hơn của mysql2. Do đó, hãy chỉnh sửa tệp gem của bạn thành

gem 'mysql2', '< 0.3'

và chạy

bundle install 

Cái này đã sửa nó cho tôi trên Ubuntu 10.04 !! Nếu sử dụng RVM, bạn cũng có thể sử dụng rvm gem install mysql2 --version=0.2.7:, và thêm dòng trên vào Gemfile của mình.
TrinitronX

Tôi đã gặp vấn đề chính xác này vào ngày hôm nay, tăng lên 3.1 và lùi xuống 3.0.7. Đây là bản sửa lỗi.
David Ortinau

2
ngoại trừ những phiên bản của mysql2 có vấn đề chặn trong các trang web lớn
Kevin

Tương tự ở đây - dường như mysql2> 3.0 không tải bộ điều hợp AR cho
Julik

3
Đối với sự giác ngộ hơn, hãy xem vấn đề mysql2 sau trên github, mà nói 0.3.x mysql sẽ chỉ làm việc với đường ray 3.1 và trở đi: github.com/brianmario/mysql2/issues/155
Tim Harper



6

Nếu bạn đang sử dụng rvm và có thể thêm mysql2 bên ngoài rvm, hãy thử các bước sau: Xác nhận rằng Gemfile của bạn cho biết:

gem 'mysql2'

hoặc cho Rails2.x:

gem 'mysql2', '~> 0.2.11'

sau đó:

$ cd RAILS_ROOT
$ gem uninstall mysql2

Select gem to uninstall:
 1. mysql2-0.2.11
 2. mysql2-0.3.6
 3. All versions
> 3 # select "All versions"
$ rvm gemset install mysql2
$ bundle install

Bây giờ đường ray sẽ bắt đầu đúng cách.


3

Điều này cũng đã khắc phục sự cố tôi gặp phải:

Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)

Bạn thực sự cần chạy: gem install mysql2 và thêm gem vào cấu hình của bạn.


1
Tôi gặp sự cố này khi cài đặt gem mysql2 theo cách thủ công. Sau đó, tôi đã sử dụng nó như bạn đã nói trong gemfile và chạy cài đặt gói. Nó được tải lên, nhưng tôi gặp lỗi không thể kết nối với mysql.sock. Vì vậy, tôi THÌ đã chạy env ARCHFLAGS = "- Arch i386" gem install mysql2 --version 0.2.6 - --with-mysql-config = / usr / local / mysql / bin / mysql_config (tôi đang sử dụng mac pro) và điều này dường như giải quyết vấn đề của tôi. Ran ray s và hey presto..Hope này sẽ giúp người ra khác :)
fullstacklife

@dryprogrammers - Tôi có thể cung cấp cho bạn hơn 100, vui lòng đưa nhận xét của bạn làm câu trả lời, nó cũng RẤT phù hợp với Ubuntu 12-10. Trên Ubuntu 12.10 Precise gitlab được cập nhật đầy đủ sẽ không cài đặt được. Băng. Sau nhiều giờ (6-8) tìm kiếm và thử nhiều thứ, tôi đã thử hack mac của bạn như một phương sách cuối cùng. LO VÀ ĐƯỢC GIỮ nhiều vì tôi (ho) không thực sự quan tâm chút nào đến máy Mac ... điều này đã làm cho tôi bây giờ tôi có thể đi ngủ ... hạnh phúc! :)
stefgosselin

2

chỉ cần chạy "gem install mysql" cũng thêm tương tự vào gemfile và chạy gói. đã làm việc


điều này đã níu kéo tôi. Tôi đã chạy "sudo gem install mysql2" và nó hoạt động. Cảm ơn!
Tomasz Iniewicz

1
Không nên quản lý gem thủ công bên ngoài Gemfile. Nó dễ gặp vấn đề phụ thuộc vào các nhà phát triển hoặc triển khai khác.
Gabe Martin-Dempesy


1

Tôi mới bắt đầu sử dụng ruby, rails và linux. Vì vậy, nếu giải pháp này không hoạt động, tôi không chịu trách nhiệm :)

Bước 1:

sudo gem uninstall mysql2

Bước 2:

sudo gem install mysql -v 0.2.7

Khởi động webrick, nếu vấn đề tương tự vẫn xuất hiện, hãy cài đặt lại đường ray.

Giải pháp này phù hợp với tôi.


1
Nói chung không phải là thực hành xấu để cài đặt một viên ngọc bằng sudo? stackoverflow.com/questions/2119064/…
Tass

1

Tôi cũng vậy. Được nâng cấp lên Rails 3.1.rc4 sau đó hạ cấp xuống 3.0.3. Đã làm cho tôi.


0

kể từ 0.3.0 và ActiveRecord 3.1 - bộ điều hợp ActiveRecord đã được rút ra khỏi viên ngọc này và vào chính ActiveRecord. Nếu bạn cần sử dụng mysql2 với các phiên bản Rails <3.1, hãy đảm bảo và chỉ định gem "mysql2", "~> 0.2.7" trong Gemfile của bạn

tệp bị thiếu ( no such file to load) có thể được tìm thấy trong phiên bản 0.3.0 trước của mysql2.

trích dẫn từ tài liệu của mysql2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.