试图用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