设为首页 收藏本站
查看: 430|回复: 0

[经验分享] Windows7下安装Ruby2的MySQL连接gem

[复制链接]

尚未签到

发表于 2016-10-10 07:16:12 | 显示全部楼层 |阅读模式
        不得不感慨的是,学习一门语言其实是学习一个技术栈,包括语言的本身、基于该语言的常用组件、基于该语言的基础框架和该语言的常用场景示例。其实这一切都是很有趣的事情,但是学习这些有意思的东西时候肯定不止是看看书籍或文章那么简单,我们需要实践。实践的重要部分就是准备学习环境,对环境的熟悉程度实际上也很大程度的标识着对该技术栈的掌握程度。
        说了一堆废话,其实不就是在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
    
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-283676-1-1.html 上篇帖子: PHP中MySQL、MySQLi和PDO的用法和区别 下篇帖子: 将SQLserver数据库转成mySQL数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表