在 Windows 上安装 MySQL2 Gem [英] Installing MySQL2 Gem on Windows

查看:80
本文介绍了在 Windows 上安装 MySQL2 Gem的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 Windows 8.1 机器上安装 mysql2 gem 时遇到了一些问题.我按照这篇文章中的说明进行操作:

<块引用>

Windows 7 上的 Ruby MYSQL2 gem 安装

安装mysql2 gem,我没有收到任何错误信息.

我跟着这个

捆绑安装

命令,并确认安装了以下 gems(使用 bundle show),确认我安装了以下 gems:

使用设计(3.2.2)使用 mysql2 (0.3.14)

然后我尝试这样做:

rails 生成设计:安装

这就是我得到的:

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: 指定的模块可以找不到.- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in ‘block (2 levels) in require’来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in ‘block in require’来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'来自 C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `<top (required)>'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `<top (required)>'来自 bin/rails:4:in `require'来自 bin/rails:4:in `<main>'

有什么想法吗?

解决方案:

答案是来自stackoverflow的两个答案的组合,加上修改.堆栈溢出参考是:

<块引用>

在 Windows 7 上安装 Ruby MYSQL2 gem...mysql2/mysql2.so:[BUG]分割错误 ruby​​ 2.0.0p247

底线:要让 mysql2 在 64 位环境中使用 Windows 8.1 上的 Ruby 2,您需要执行以下操作:

  1. 清理:你来这里的原因是你可能一直在尝试安装这个 gem,但它失败了,所以你有一些清理工作做: gem 卸载 mysql2

  2. 下载适用于 Windows 的 Ruby 2.0 64 位:

<块引用>

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

  1. 运行安装程序.注意它安装到的目录,并确保它在用户路径中.去

    控制面板>系统和安全 >系统 - 高级系统设置 >环境变量

并确保ruby安装目录的bin目录的路径在LOCAL用户的PATH环境变量中(如果在SYSTEM Path环境变量中也可以)

  1. 下载 Ruby 2 64 位开发工具包:

<块引用>

http:///cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

  1. 运行安装程序并记下安装目录的位置.说明说完成安装后,您需要运行 devkitvars.bat 文件来设置环境变量.这不适用于 Windows 8.1.需要重复上面#2中设置本地路径的说明,为本地用户设置路径环境变量,添加ruby dev kit bin目录,以及ruby dev kit mingw bin目录.例如,如果开发工具包安装到 c:\ruby2devkit,而您将 ruby​​2 安装到 C:\Ruby200-x64 目录,那么您将路径语句编辑为如下所示:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin

  2. 接下来你需要安装mysql-connector.请勿下载并运行自安装程序.相反,下载 zip 文件并解压它.注意你解压到的目录(为了这篇文章的目的,假设你解压到 c:\mysql-connector:

<块引用>

http://dev.mysql.com/downloads/file.php?id=450612

  1. 64 位 MySQL 连接器中包含的 libmysql.lib 与 mingw64-gcc 编译器不兼容.需要生成mingw64兼容的libmysql.lib文件.

  2. 下载您需要的工具

    https://structure-svm-map.googlecode.com/files/svm-map-win.zip

  3. 把这个文件解压到本地目录,假设你解压到c:\svm-map

  4. 编辑 PATH 环境路径,如前所述,现在看起来像这样:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib

  5. 生成新的 mysql 库:

    (确保您以管理员身份运行)cd c:\mysql-connector\libgendef.exe libmysql.dlldlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib复制 libmysql.dll C:\Ruby200-x64\bin复制 libmysql.lib C:\Ruby200-x64\bin

  6. 如下安装gem(注意使用正斜杠而不是反斜杠,如果使用反斜杠会失败):

    gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-connector/"'

希望这会有所帮助,希望有人会关注那些想要进行 Ruby on Rails 开发的少数​​ Windows 8.1 用户.

解决方案

当您安装 mysql2 时,您是否下载了它需要的 lib 文件?

<小时>

我没有在 Windows 8 上安装它,但 Windows 7 需要有 这个文件 为 mysql 提供帮助其工作所需的依赖项.你可以看到各种 教程关于如何做到这一点,我将在这里概述一个简单的概述:

- 解压缩 mysql 连接器文件:

C:\mysql-connector-c-6.1.3-win32\(或类似路径,不带任何空格)

- 再次运行 mysql2 gem 安装程序:

gem 卸载 mydsqlgem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

<小时>

最重要的是,我认为您的 mysql2 gem 没有加载运行所需的文件,并且可能不会显示错误,因为它是 Windows 8

I was having some issues getting the mysql2 gem to install on my Windows 8.1 machine. I followed the instructions in this post:

Ruby MYSQL2 gem installation on windows 7

to install the mysql2 gem, and I did not get any error messages.

I followed this with the

bundle install 

command, and confirmed that the following gems are installed (using bundle show), confirming that I have the following gems installed:

Using devise (3.2.2)
Using mysql2 (0.3.14)

Then I tried doing:

rails generate devise:install

and this is what I got:

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.   
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require'
    from C:/Users/Joseph/googledrive/projects/rails/test_new_devise/config/application.rb:7:in `<top (required)>'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `require'
    from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/railties-4.0.2/lib/rails/commands.rb:43:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

Any ideas?

Solution:

The answer is a combination of two answers from stackoverflow, plus modifications. The stackoverflow references are:

Ruby MYSQL2 gem installation on windows 7 ...mysql2/mysql2.so: [BUG] Segmentation fault ruby 2.0.0p247

Bottom line: to get mysql2 working in a 64 bit environment with Ruby 2 on Windows 8.1, you need to do the following:

  1. Clean up: the reason you're here is that you're probably been trying to install this gem, and it has failed, so you have some cleanup to do: gem uninstall mysql2

  2. Download Ruby 2.0 64 bit for Windows:

http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct

  1. Run the installer. Note the directory it installs to, and make sure it's in the User PATH. go to

    Control Panel > System and Security > System - Advanced System Settings > Environment Variables
    

and make sure the path to the bin directory of the ruby install directory is in the PATH environment variable for the LOCAL user (it's also OK if it's in the SYSTEM Path environment variable)

  1. Download the Ruby 2 64 bit Dev Kit:

http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

  1. Run the installer and note the location of the install directory. The instructions say that once you're done with the install, you need to run the devkitvars.bat file to set the environment variables. This DOES NOT work for Windows 8.1. You need to repeat the instructions to set the local path described in #2 above, to set the path environment variable for the local user to add the ruby dev kit bin directory, and the ruby dev kit mingw bin directory. For example, if the dev kit was installed to c:\ruby2devkit, and you installed ruby2 to the C:\Ruby200-x64 directory, then your edit your path statement to look like this:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin
    

  2. Next you need to install the mysql-connector. DO NOT download and run the self-installer. Instead, download the zip file and unpack it. Note the directory you unpacked it to (for the purposes of this post, let's assume you unpacked it to c:\mysql-connector:

http://dev.mysql.com/downloads/file.php?id=450612

  1. The libmysql.lib included in the MySQL Connector 64 bit is not compatible with the mingw64-gcc compiler. You need to generate mingw64 compatible libmysql.lib file.

  2. Download the tools you need

    https://structure-svm-map.googlecode.com/files/svm-map-win.zip

  3. Unzip this file to a local directory, let's assume that you unzipped it to c:\svm-map

  4. Edit the PATH environment path, as described earlier, to now look like this:

    C:\Ruby200-x64\bin;C:\ruby2-devkit\bin;c:\ruby2-devkit\mingw\bin;c:\svm-map;C:\svm-map\python-mingw-lib
    

  5. Generate the new mysql libraries:

    (make sure you're running as administrator)
    
    cd c:\mysql-connector\lib
    
    gendef.exe libmysql.dll
    
    dlltool -v --dllname libmysql.dll --def libmysql.def --output-lib libmysql.lib
    
    copy libmysql.dll C:\Ruby200-x64\bin
    
    copy libmysql.lib C:\Ruby200-x64\bin
    

  6. Install the gem as follows (note the use of forward slashes instead of backslashes, it will fail if you use backslashes):

    gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/mysql-connector/"'

Hope this helps, and hopefully someone will pay attention to the few Windows 8.1 users who want to do Ruby on Rails development.

解决方案

When you installed the mysql2, did you download the lib files it needs?


I've not installed it on Windows 8, but Windows 7 needs to have this file to give mysql the dependencies requires to help it work. You can see various tutorials on how to do this, and I'll outline a simple overview here:

- Unzip the mysql connector file:

C:\mysql-connector-c-6.1.3-win32\ (or similar path WITHOUT any spaces)

- Run the mysql2 gem installer again:

gem uninstall mydsql
gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'


Bottom line is I think your mysql2 gem isn't loading the files it requires to run, and probably doesn't show an error because it's Windows 8

这篇关于在 Windows 上安装 MySQL2 Gem的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆