試圖用mysql啓動一個新的Rails 3 beta 4應用程序....運行OS X Snow Leopard。與以前版本的Rails相比,我對MySQL沒有任何問題。但現在,當我開始了Rails 3應用程序,我得到當我點擊「關於您的應用環境」了Rails的index.html啓動屏幕上出現以下錯誤:Rails 3 Mysql問題
未定義的方法`初始化」對於MySQL:類
試圖用mysql啓動一個新的Rails 3 beta 4應用程序....運行OS X Snow Leopard。與以前版本的Rails相比,我對MySQL沒有任何問題。但現在,當我開始了Rails 3應用程序,我得到當我點擊「關於您的應用環境」了Rails的index.html啓動屏幕上出現以下錯誤:Rails 3 Mysql問題
未定義的方法`初始化」對於MySQL:類
將您的Gemfile更改爲使用'mysql2',它是一個更現代的驅動程序,並具有其他人提到的更好的功能。
默認情況下,新的Rails應用程序使用mysql2 gem。
確保你也改變了你的database.yml文件來使用「adapter:mysql2」而不是「adapter:mysql」,否則你會得到一個mysql2 gem未被加載的錯誤。 – nikz 2011-03-23 03:18:06
我還需要安裝一個mysql2 gem嗎?這看起來很接近。我得到了以下錯誤:耙中止! dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle,9):庫未加載:libmysqlclient.18.dylib 引用自:/ Library/Ruby/Gems /1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle 原因是:image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.3.2/lib/mysql2/mysql2.bundle /Users/chris/rails_projects/sienab/Rakefile:4 (請參閱使用--trace運行任務完整跟蹤) – chris 2011-06-02 11:49:07
如果您需要準備好的語句,則可以使用Sequel gem,因爲MySql2 gem目前還不支持。 https://github.com/jeremyevans/sequel – 2015-05-01 23:41:39
我想我已經找到了解決問題的辦法。在我的情況下,問題是MySQL的寶石尚未使用捆綁器正確安裝。我這樣做的時候:
捆綁安裝mysql(noobish錯誤)
所有寶石去mysql目錄,但後來我檢查了捆綁寶石 的文檔和這樣做:
捆綁安裝bundler_files(知道寶石在未來的地方)
一切看起來幾乎沒問題,只是當安裝mysql gem時我有一些錯誤。 我注意到,這是因爲我的文件夾路徑「/ home/pawel/Aptana Studio Workspace/myrails_app」
如果您的文件夾路徑中有空格,則此gem將無法正確安裝,並且稍後會將路徑修改爲一個沒有空格,並嘗試安裝mysql的寶石,它不會顯示任何錯誤,但安裝將被損壞,因爲你將有一些額外的文件夾中有一些文件等,所以
DELETE創建者捆綁創業板文件夾並重新安裝帶有此命令的GEM:
捆綁安裝
解決了這個問題。
爲了簡單的使用,這是典型的(連接,查詢,迭代結果),我發現mysql2 gem比mysql或ruby-mysql gem快得多,並自動將值轉換爲正確的類型。它在Snow Leopard上完美安裝,而我無法獲得MySQL Gem的工作。在http://github.com/brianmario/mysql2
我碰到了同樣的問題
更多信息(ROR 3,OSX 10.6,MySQL的2.8.1寶石)。
您可以使用內部評級法來排除回報率:
irb
require 'rubygems'
require 'mysql'
db = Mysql.connect('hostname', 'username', 'password', 'database')
如果以上不工作,你可能想嘗試刪除mysql的寶石,並重新安裝它。我遇到一個帖子說bundle install
可能會搞亂安裝而不顯示錯誤。
sudo gem uninstall mysql
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
通過irb
驗證工作是否正常,然後重新啓動導軌。
你可以嘗試切換到mysql2寶石,它應該爲你解決所有問題。請參閱:https://github.com/brianmario/mysql2/
升級到Snow Leopard後,我遇到了同樣的問題。上安裝MySQL的寶石,我有一大堆有關文件,錯誤的話,上運行的服務器:
undefined method `init' for Mysql:Class
我也有與其它寶石有些相似,但無關的問題,尤其是那些有C組分需要進行編譯,例如RedCloth和hpricot:
Unable to compile native extensions
這些錯誤與基本64架構中的本機擴展有關。該解決方案是三倍:
現在一切都好了。
我認爲會發生什麼是mysql gem無法加載mysql動態庫(應該由本地MySQL安裝提供)。爲了測試是否發生這種情況,這樣做
$ irb
1.9.2p320 :001 > require 'mysql_api'
=> true
1.9.2p320 :002 >
如果無法加載這個低水平mysql_api
,(這實際上提供的功能給mysql
寶石),它會給你一些可能有用的錯誤。通常它無法找到動態庫。爲了解決這個問題,我發現一對夫婦的解決方案:
從http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard,做到這一點
對於整個系統的安裝
sudo env ARCHFLAGS="-arch i386" gem install mysql -- \
--with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
--with-mysql-include=/usr/local/mysql/include
或本地安裝
env ARCHFLAGS="-arch i386" gem install mysql -- \
--with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib \
--with-mysql-include=/usr/local/mysql/include
,然後從http://alexbraunstein.com/2011/08/12/library-loaded-libmysqlclient-18-dylib/放入.bash_profile
:
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
你的Gemfile裏有'gem'mysql''嗎? – 2010-06-28 01:41:03
當官方發佈出來時,這個問題最終會讓我失望,對我來說,這只是我使用測試版時的一個問題。 – 2010-10-01 21:32:25