mysql - Windows 是否支持 Datamapper 的 dm_mysql_adapter gem?

标签 mysql ruby rubygems datamapper ruby-datamapper

我想更多地使用 Ruby,目前似乎已经掌握了 sinatra,但现在还想从关系数据库中提取数据。我倾向于将 Mysql 用于测试应用程序并尝试安装 gem,但是当它尝试编译它所依赖的 native do_mysql gem 时,我总是遇到异常。

我确实安装了 native 扩展,它们在 JSON gem 上运行良好,我记得前一段时间在某处读到说 do_mysql 当前不支持 Windows,所以我想知道是否仍然如此。

在 Windows 7 上使用 ruby​​ 1.9.2(通过 ruby​​ 安装程序 + native 扩展安装)

以下是异常(exception)情况,以防有帮助:

C:\dump\ruby\DataMapperTest\gems>gem install dm-mysql-adapter-1.2.0.gem
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing dm-mysql-adapter-1.2.0.gem:
        ERROR: Failed to build gem native extension.

        C:/Tools/Ruby192/bin/ruby.exe extconf.rb
checking for my_global.h... no
checking for mysql.h... no
checking for main() in -llibmysql... no
checking for mysql_query() in mysql.h... no
checking for mysql_ssl_set() in mysql.h... no
checking for localtime_r()... no
checking for gmtime_r()... no
checking for mysql.h... no
checking for MYSQL_TYPE_STRING in mysql.h... no
checking for MYSQL_TYPE_BIT in mysql.h... no
checking for MYSQL_TYPE_NEWDECIMAL in mysql.h... no
checking for mysql_query() in mysql.h... no
checking for mysql_ssl_set() in mysql.h... no
checking for mysql_sqlstate() in mysql.h... no
checking for mysql_get_ssl_cipher() in mysql.h... no
checking for mysql_set_character_set() in mysql.h... no
checking for mysql_get_server_version() in mysql.h... no
checking for MYSQL_FIELD.charsetnr in mysql.h... no
creating Makefile

make
C:/Tools/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_do_mysql'"  > do_mysql-i386-
mingw32.def
gcc -I. -IC:/Tools/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Tools/Ruby192/in
clude/ruby-1.9.1/ruby/backward -I/C/Tools/Ruby192/include/ruby-1.9.1 -I.   -O3 -
g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings
 -Wno-missing-field-initializers -Wno-long-long -Wall   -o do_common.o -c do_com
mon.c
gcc -I. -IC:/Tools/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Tools/Ruby192/in
clude/ruby-1.9.1/ruby/backward -I/C/Tools/Ruby192/include/ruby-1.9.1 -I.   -O3 -
g -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings
 -Wno-missing-field-initializers -Wno-long-long -Wall   -o do_mysql.o -c do_mysq
l.c
do_mysql.c:5:19: fatal error: mysql.h: No such file or directory
compilation terminated.
make: *** [do_mysql.o] Error 1


Gem files will remain installed in C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/do_
mysql-0.10.7 for inspection.
Results logged to C:/Tools/Ruby192/lib/ruby/gems/1.9.1/gems/do_mysql-0.10.7/ext/
do_mysql/gem_make.out

C:\dump\ruby\DataMapperTest\gems>

Mysql 5.5社区版已安装配置,Mysql已经添加到系统PATH中。

最佳答案

DataMapper 和 DataObjects(连接到数据库的较低层)可以在 Windows 上工作。

但是,似乎 do_mysql 0.10.7 缺少用于 x86-mingw32 平台的预编译二进制文件:

http://rubygems.org/gems/do_mysql/versions

您可以使用 MySQL Connector/C 接口(interface)自行编译 do_mysql,它与您计算机中安装的 MySQL 版本无关。

请查看这篇提供安装说明的博文:

http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

说明适用于 mysql gem,但将其更改为 do_mysql 应该可以工作(除了特定于 MySQL 的示例代码。

希望对您有所帮助。

关于mysql - Windows 是否支持 Datamapper 的 dm_mysql_adapter gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8164926/

相关文章:

mysql - 为什么sql比较忽略大小写

ruby - 读取urls.txt

ruby-on-rails - M1 MBP Rails db :create is throwing an error for msgpack

ruby - 安装的 gem 比源慢得多

mysql - 我们如何在 MySql 查询中的两个单独字段中分配 ORDER BY?

java - 如何使用 hibernate 和 MySQL 在 java 中创建单页应用程序 (SPA)

mysql - 选择最大计数,其中一列决定分组类型

ruby-on-rails - 从 Ruby 对象数组生成键值 JSON 对象

ruby-on-rails - Activerecord:在表中查找第 n 行

ruby-on-rails - Ruby on Rails : How to undo nested_scaffold in rails