簡體   English   中英

在 Windows 上安裝 MySQL2 Gem

[英]Installing MySQL2 Gem on Windows

我在 Windows 8.1 機器上安裝 mysql2 gem 時遇到了一些問題。 我按照這篇文章中的說明進行操作:

在 Windows 7 上安裝 Ruby MYSQL2 gem

安裝mysql2 gem,我沒有收到任何錯誤消息。

我跟着這個

bundle install 

命令,並確認安裝了以下 gems(使用 bundle show),確認我安裝了以下 gems:

Using devise (3.2.2)
Using mysql2 (0.3.14)

然后我嘗試這樣做:

rails generate devise:install

這就是我得到的:

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>'

有任何想法嗎?

解決方案:

答案是來自 stackoverflow 的兩個答案的組合,加上修改。 堆棧溢出參考是:

在 Windows 7 上安裝 Ruby MYSQL2 gem ...mysql2/mysql2.so: [BUG] 分割錯誤 ruby​​ 2.0.0p247

底線:要讓 mysql2 在 Windows 8.1 上的 Ruby 2 的 64 位環境中工作,您需要執行以下操作:

  1. 清理:你在這里的原因是你可能正在嘗試安裝這個 gem,但它失敗了,所以你有一些清理工作要做: gem uninstall mysql2

  2. 下載適用於 Windows 的 Ruby 2.0 64 位:

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

  1. 運行安裝程序。 注意它安裝到的目錄,並確保它在用戶路徑中。

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

並確保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. MySQL 連接器 64 位中包含的 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 庫:

     (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. 安裝 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 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"'

底線是我認為您的mysql2 gem 沒有加載運行所需的文件,並且可能沒有顯示錯誤,因為它是 Windows 8

我希望這在嘗試在Windows 10機器上使用MariaDB安裝mysql2時會有所幫助。

由於某種原因,我在嘗試使用連接器庫時遇到了很多問題。 此外,我可以下載的庫是第 6 版,而我使用的 MariaDB 版本使用的是第 10 版的庫。

我首先下載並安裝了 MariaDB。

我使用了命令

gem install mysql2 --platform=ruby -- --with-mysql-lib="path_to:\MariaDB 10.5\"

這編譯並安裝了 gem,沒有任何問題。

在數據庫.yml

默認:&default 適配器:mysql2 編碼:utf8 重新連接:false 數據庫:DBname 池:5 用戶名:DBuser 密碼:DBpassword 套接字:tmp/mysql.sock

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM