[英]Installing MySQL2 Gem on Windows
我在 Windows 8.1 機器上安裝 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 位環境中工作,您需要執行以下操作:
清理:你在這里的原因是你可能正在嘗試安裝這個 gem,但它失敗了,所以你有一些清理工作要做: gem uninstall mysql2
下載適用於 Windows 的 Ruby 2.0 64 位:
http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
運行安裝程序。 注意它安裝到的目錄,並確保它在用戶路徑中。 去
Control Panel > System and Security > System - Advanced System Settings > Environment Variables
並確保ruby安裝目錄的bin目錄的路徑在LOCAL用戶的PATH環境變量中(如果在SYSTEM Path環境變量中也可以)
http://cdn.rubyinstaller.org/archives/devkits/DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
運行安裝程序並記下安裝目錄的位置。 說明說完成安裝后,您需要運行 devkitvars.bat 文件來設置環境變量。 這不適用於 Windows 8.1。 需要重復上面#2中設置本地路徑的說明,為本地用戶設置路徑環境變量,添加ruby dev kit bin目錄,以及ruby dev kit mingw bin目錄。 例如,如果開發工具包安裝到 c:\\ruby2devkit,而您將 ruby2 安裝到 C:\\Ruby200-x64 目錄,那么您將路徑語句編輯為如下所示:
C:\\Ruby200-x64\\bin;C:\\ruby2-devkit\\bin;c:\\ruby2-devkit\\mingw\\bin
接下來你需要安裝mysql-connector。 請勿下載並運行自安裝程序。 相反,下載 zip 文件並解壓它。 請注意您將其解壓到的目錄(出於本文的目的,假設您將其解壓到 c:\\mysql-connector:
MySQL 連接器 64 位中包含的 libmysql.lib 與 mingw64-gcc 編譯器不兼容。 您需要生成 mingw64 兼容的 libmysql.lib 文件。
下載您需要的工具
https://structure-svm-map.googlecode.com/files/svm-map-win.zip
將此文件解壓縮到本地目錄,假設您將其解壓縮到 c:\\svm-map
如前所述,編輯 PATH 環境路徑,現在看起來像這樣:
C:\\Ruby200-x64\\bin;C:\\ruby2-devkit\\bin;c:\\ruby2-devkit\\mingw\\bin;c:\\svm-map;C:\\svm-map\\python-mingw-lib
生成新的 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
安裝 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.