`
kingxss
  • 浏览: 969404 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Windows7下安装Ruby2的MySQL连接gem

    博客分类:
  • Ruby
阅读更多

        不得不感慨的是,学习一门语言其实是学习一个技术栈,包括语言的本身、基于该语言的常用组件、基于该语言的基础框架和该语言的常用场景示例。其实这一切都是很有趣的事情,但是学习这些有意思的东西时候肯定不止是看看书籍或文章那么简单,我们需要实践。实践的重要部分就是准备学习环境,对环境的熟悉程度实际上也很大程度的标识着对该技术栈的掌握程度。

        说了一堆废话,其实不就是在Windows7下装了个Ruby2的MySQL的连接gem嘛?但是真的是要感慨一下,被这东西折腾了3个多小时,极大的妨碍了学习Ruby的进程。

 

一 环境说明

     1 安装的环境

           1).Windows7       x64             Ultimate

           2).Mysql5.6         x64             5.6.10.1

           3).Ruby2             x64             2.0.0-p247

           4).DevKit             x64             4.7.2

 

     2 Ruby2.0和DevKit 安装说明

     2.1) 在ruby官网  http://rubyinstaller.org/downloads/  下载Ruby2.0和DevKit的安装包,比如:rubyinstaller-2.0.0-p247-x64.exe和DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe。

     2.2) rubyinstaller-2.0.0-p247-x64.exe直接双击运行,安装好可以在命令行用ruby -v检查是否安装成功,如果显示版本号就对了。

     2.3) 双击下载的7z文件:DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe,指定解压路径,路径中不能有空格。如C:\DevKit,这个路径就是<DEVKIT_INSTALL_DIR>。

> cd <DEVKIT_INSTALL_DIR>
> ruby dk.rb init
#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby
#如果这里列出的Ruby与你的要求不符,可以手动修改,注意配置参数 “ - C:/Ruby2”中-前后的空格
> ruby dk.rb review  #检查要添加DevKit支持的Ruby列表是否有误,可以略过
> ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby2'
[INFO] Installing 'C:/Ruby2/lib/ruby/site_ruby/devkit.rb'

   

   检查是否安装成功:

> gem install rdiscount --platform=ruby
Fetching: rdiscount-1.6.8.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed rdiscount-1.6.8
1 gem installed
Installing ri documentation for rdiscount-1.6.8...
Installing RDoc documentation for rdiscount-1.6.8...

   如果能安装rdiscount成功说明安装DevKit成功。最后需要将DevKit的<DEVKIT_INSTALL_DIR>\bin加入到环境变量的Path中。

 

   具体参考:https://github.com/oneclick/rubyinstaller/wiki/development-kit   

     

二 mysql和mysql2安装过程

    1. 从mysql官网  http://dev.mysql.com/downloads/connector/c/  下载mysql-connector-c-noinstall-6.0.2-winx64.zip,该包下的libmysql.dll 文件是MySQL的动态链接库文件,缺少此文件数据库无法正常工作。

          1.1) 这里需要下载6.0版本,将该文件解压到相应目录,例如:c:\mysql-connector-c 。

          1.2) 从 c:\mysql-connector-c\lib 中拷贝libmysql.dll到ruby/bin文件夹

 

     2. 由于mysql-connector-c中的 libmysql.lib 不与mingw64-gcc编译器兼容,所以需要生成mingw64兼容libmysql.lib文件。

         具体原因参考:https://bugs.ruby-lang.org/issues/8591

 

         下载需要的工具,主要是gendef.exe,这个应用从 https://structure-svm-map.googlecode.com/files/svm-map-win.zip 下载。

          2.1) 解压该文件,拷贝gendef.exe到devkit/mingw/bin下。所以拷贝到这里,是因为dlltool.exe也在这里,都放到path里方便。

          2.2) 打开cmd, 进入 C:\mysql-connector-c\lib,依次运行如下命令:

#生成libmysql.def文件
gendef.exe libmysql.dll

#生成新的lib了
dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib

     

    3. gem安装mysql和mysql2

#mysql
gem install mysql --platform=ruby -- --with-opt-dir=C:/mysql-connector-c
#mysql2
gem install mysql2 --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c

     安装过程过程中可能会碰到相应的问题,可以参考这里:

mysql安装参数问题:http://stackoverflow.com/questions/17673612/installing-mysql-ruby-gem-in-windows-fails-using-ruby-2-0-0

 

mysql2安装参数问题:http://stackoverflow.com/questions/19014117/ruby-mysql2-gem-installation-on-windows-7

 

编码问题“unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/mysql/mysql_api.so, skipping”:http://stackoverflow.com/questions/4917859/ruby-error-utf-8-to-ascii

    

 

分享到:
评论
4 楼 梅花簪 2014-09-16  
我的ruby 1.9.3,还是有问题:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/mysql-2.9.1-x86-mingw32/lib
/mysql.rb:6:in `require': cannot load such file -- mysql/mysql_api (LoadError)

请教这是什么问题?
3 楼 kingxss 2014-03-25  
harbinu 写道
harbinu 写道
您好,请问我执行这个命令gendef.exe libmysql.dll,的时候说不是内部命令,我还需要做什么,谢谢
我现在就卡在这么步骤了


请添加devkit/mingw/bin的正确目录到操作系统的环境变量中。
2 楼 harbinu 2014-03-23  
harbinu 写道
您好,请问我执行这个命令gendef.exe libmysql.dll,的时候说不是内部命令,我还需要做什么,谢谢
我现在就卡在这么步骤了
1 楼 harbinu 2014-03-23  
您好,请问我执行这个命令gendef.exe libmysql.dll,的时候说不是内部命令,我还需要做什么,谢谢

相关推荐

    ruby 连接mysql的gem安装包

    ruby 连接mysql的gem安装包

    gem安装、rails安装、mysql库文件安装

    1.安装gem,进入gem文件夹,里面有个setup文件,直接双击就行了。 2.进入rails目录使用gem命令安装(这一步必须要上...3.复制libmySQL.dll到ruby的安装目录的bin文件夹下,然后使用gem安装mysql-2.7.3-x86-mswin32.gem.

    mysql2-0.3.16.gem

    A simple, fast Mysql library for Ruby, binding to libmysql Gemfile entry -- gem 'mysql2', '0.3.16' Install with GEM -- gem install mysql2 --version 0.3.16

    Ruby 连接数据库资源汇总

    Ruby 连接数据库资源汇总。包括有:Ruby连接Mysql,oracle,postgreSQL,sqlite等包.还有ruby/DBI. 有GEM包,也有源代码包。

    ruby rails demo

    (4)安装mysql gem install mysql2 创建项目: rails new webapp -d mysql rails server #启动服务 rails generate scaffold hello rails generate scaffold Post name:string title:string content:text rake ...

    Rails bundle命令安装mysql gem包出错的解决方法

    解决 Rails bundle 安装不上 mysql gem包的问题 环境 ubuntu 12.04 ruby-2.1.1 首先 新建一个的一个项目,在该项目上执行 bundle install 提示 代码如下: … Make sure that gem install mysql2 -v ‘0.3.16’; ...

    mysql2-lambda:适用于AWS Lambda的预编译Mysql2 Gem

    预编译的非常简单的 gem,适用于Amazon Linux 1和2(Ruby 2.5和2.7),具有静态链接的libmysqlclient用于任何AWS Lambda用法,包括Rails。 gem 'mysql2-lambda' 的一系列开源项目的 详细信息包括: 在Ruby 2.5.x...

    用于Ruby 和 Rails 项目的 MySQL 驱动程序.zip

    Ruby 的现代、简单且非常快速的 Mysql 库 - 绑定到 libmysql Mysql2 gem 旨在服务于连接、查询和迭代结果的极其常见的用例。那里的一些数据库库作为已经很复杂的可用 C API 的直接 1:1 映射。这个不是。

    一个现代,简单,非常快速的Ruby Mysql库-绑定到libmysql-Ruby开发

    Mysql2-一个用于Ruby的现代,简单且非常快速MySQL库-绑定到libmysql Travis CI Appveyor CI Mysql2 gem旨在为连接,查询和迭代结果的极为常见的用例提供服务。 某些Mysql2-一个现代,简单且非常快速的Ruby MySQL库-...

    mysql2psql

    mysql2psql 是一个 Ruby 的扩展用来将 MySQL 数据迁移到 PostgreSQL 数据库。 安装方法:gem install mysql2psql

    rails 连接mysql的问题解决

    – c:/ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so 实际上是找不到连接所需的dll文件:libmySQL.dll 在mysql安装目录下的bin目录下将此文件复制到ruby的bin目录下即可解决此问题. ...

    mysql_yearweek:用于获取与 MySQL 函数等效的 yearweek 值的 Ruby gem

    安装 $ gem install mysql_yearweek示例用法 &gt; require mysql_yearweek=&gt; true&gt; MySQLYearweek.yearweek(Date.new(2013, 07, 25))=&gt; "201330"&gt; MySQLYearweek.yearweek(Date.new(2013, 07, 25), 2)=&gt; "201329"限制这...

    simple-s3-backup:一个简单的 Ruby 备份解决方案,用于将 MySQL 和 MongoDB 数据库、文件目录和单个文件备份到 Amazon S3

    使用步骤: 设置 Amazon S3 账户: : 安装 aws/s3 Ruby gem: : 将 settings-sample.rb 重命名为 settings.rb 在 settings.rb 中,填写特定的命令路径、您的 Amazon API 凭证、MySQL 登录信息和数据库以及您要备份...

    invoicing:Ruby 发票框架 gem

    sudo gem 安装发票 状态¶ ↑ 到目前为止,Ruby Invoicing Framework 已经通过 ActiveRecord 2.2.2、MySQL 5.0.67 和 PostgreSQL 8.3.5 进行了测试。 我们将很快在更广泛的版本中对其进行测试。

    mysql2postgres:Mysqldump,以postgresql格式编写

    master分支支持的最低Ruby版本是2.1.7 ,下一个发行版将具有相同的要求。 使用经过修改的Rails database.yml配置,您可以将mysql-to-postgres集成到项目中。 安装 当前失败,请参阅#81 ... 通过RubyGems gem ...

    sqlite2mysql:用于将sqlite3数据库转换为mysql的简单脚本

    sqlite2mysql安装gem install sqlite2mysql不要在您的项目中包含它,这不是它的目的。 这是一个命令行工具。用法像这样运行: sqlite2mysql test.db这将在mysql中创建一个名为testdb的数据库,该数据库具有与test.db...

    mysql2_query_filter:Mysql2的过滤框架

    gem 'mysql2_query_filter' 然后执行: $ bundle 或者自己安装: $ gem install mysql2_query_filter 用法 require 'mysql2_query_filter' class MyFilter &lt; Mysql2QueryFilter :: Base def filter ( sql...

    mysql_index_checker:一个用于检查您带有activerecord的查询是否使用索引的gem

    在此目录中,您将找到能够将Ruby库打包为gem所需的文件。 将您的Ruby代码放在文件lib/mysql_index_checker 。 要试验该代码,请运行bin/console进行交互式提示。 待办事项:删除此内容和上面的文字,并描述您的...

    mysqlconn:将许多目标的mysql连接凭据存储在配置文件中,并轻松连接

    mysqlconn-mysql连接助手 将mysql连接凭据存储在简单,安全的配置文件中。 然后,可以将许多目标与您指定的db_key一起使用。 您还可以针对所选名称运行脚本文件。 为安全起见,设置了mysql提示符。 指示 安装: gem...

    mysqlexport

    给您二进制mysqlexport和ruby类Mysqlexport::Csv将mysql表导出到csv文件中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'mysqlexport' 然后执行: $ bundle install 或自己安装为: $ gem install mysql...

Global site tag (gtag.js) - Google Analytics