我的系统是mac osx 10.6.4,mysql和mysql驱动已经安装成功,但在执行下面命令时报错:
rake db:migrate
rake aborted!
uninitialized constant MysqlCompat::MysqlRes
上网google后说是由于装的mysql是32bit造成的。而我的mysql是macport安装的,也不知道是几位的,所以重新下载64bit安装包安装了一下,但还是报上面那个错。
为了在mac下搭建rails开发环境已经折腾了4天了,真是头都晕了。哪位大侠能指点一下。另外,要怎样查看我安装的mysql是32bit还是64bit的?
由于之前安装过mysql,所以我在安装前执行了以下命令来清除以前安装的版本(参考http://qingbo.net/picky/510-snowleopard-ruby-mysql.html):
1. 关掉 MySQL Server
2. sudo rm /usr/local/mysql
3. sudo rm -rf /usr/local/mysql*
4. sudo rm -rf /Library/StartupItems/MySQLCOM
5. sudo rm -rf /Library/PreferencePanes/My*
6. 编辑文件 /etc/hostconfig,删掉这一行:MYSQLCOM=-YES-
7. rm -rf ~/Library/PreferencePanes/My*
8. sudo rm -rf /Library/Receipts/mysql*
9. sudo rm -rf /Library/Receipts/MySQL*
我是用mysql-5.1.50-osx10.6-x86_64.dmg来安装的。
不过在安装mysql驱动时,必须用以下命令来安装:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql --no-ri --no-rdoc -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
如果用以下命令会报错,不知道检验不通过是不是跟这个有关:
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while...
Successfully installed mysql-2.8.1
1 gem installed
Installing ri documentation for mysql-2.8.1...
No definition for next_result
No definition for field_name
No definition for field_table
No definition for field_def
No definition for field_type
No definition for field_length
No definition for field_max_length
No definition for field_flags
No definition for field_decimals
No definition for time_inspect
No definition for time_to_s
No definition for time_get_year
No definition for time_get_month
No definition for time_get_day
No definition for time_get_hour
No definition for time_get_minute
No definition for time_get_second
No definition for time_get_neg
No definition for time_get_second_part
No definition for time_set_year
No definition for time_set_month
No definition for time_set_day
No definition for time_set_hour
No definition for time_set_minute
No definition for time_set_second
No definition for time_set_neg
No definition for time_set_second_part
No definition for time_equal
No definition for error_errno
No definition for error_sqlstate
Installing RDoc documentation for mysql-2.8.1...
No definition for next_result
No definition for field_name
No definition for field_table
No definition for field_def
No definition for field_type
No definition for field_length
No definition for field_max_length
No definition for field_flags
No definition for field_decimals
No definition for time_inspect
No definition for time_to_s
No definition for time_get_year
No definition for time_get_month
No definition for time_get_day
No definition for time_get_hour
No definition for time_get_minute
No definition for time_get_second
No definition for time_get_neg
No definition for time_get_second_part
No definition for time_set_year
No definition for time_set_month
No definition for time_set_day
No definition for time_set_hour
No definition for time_set_minute
No definition for time_set_second
No definition for time_set_neg
No definition for time_set_second_part
No definition for time_equal
No definition for error_errno
No definition for error_sqlstate