mysql2 node




安裝mysql2時出錯:無法構建gem本機擴展 (16)

libmysql-ruby已被淘汰並被替換。 新命令:

 sudo apt-get install ruby-mysql libmysqlclient-dev

我在嘗試為Rails安裝mysql2 gem時遇到了一些問題。 當我嘗試通過運行bundle installgem install mysql2來安裝它時,它給我提供了以下錯誤:

安裝mysql2時出錯:錯誤:無法構建gem本機擴展。

我該如何解決這個問題並成功安裝mysql2


這裡是Windows用戶的解決方案,希望它有幫助!

在Windows上使用MySQL和Rails 3

  • 安裝railsinstaller - > www.railsinstaller.org (我將它安裝到c:\ Rails)

  • 安裝MySQL (我使用MySQL 5.5) - > dev.mysql.com/downloads/installer/

---為mySQL安裝---

如果你還沒有安裝這兩個文件,你可能需要他們讓你的MySQL去

vcredist_x86.exe - > http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe - > http://www.microsoft.com/download/en/details.aspx?id=17718

使用默認安裝Developer Machine

-MySQL服務器配置 -
港口:3306
windows服務名稱:MySQL55
mysql root pass:root(你可以稍後改變它)
(用戶名:root)
-MySQL服務器配置 -

---為mySQL安裝---


---安裝mysql2 Gem ---

重要提示: 使用Git Bash命令行 (這是使用railsinstaller安裝的) - > start / Git Bash

gem install mysql2 - '--with-mysql-lib =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib”--with-mysql-include =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \包括”'

現在寶石應該已經正確安裝了

最後從中復制libmysql.dll文件
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib

C:\ Rails的\ Ruby1.9.2 \ BIN

---安裝mysql2 Gem ---


您現在可以在MySQL中使用您的Rails應用程序,如果您不確定如何創建Rails 3應用程序並閱讀MySQL ...

---獲取一個使用MySQL的Rails 3應用程序---

打開命令提示符(不是Git Bash) - > start / cmd
導航到您的文件夾(c:\ Sites)
創建新的rails應用程序

rails new world

刪除文件c:\ Sites \ world \ public \ index.html
編輯文件c:\ Sites \ world \ config \ routes.rb
添加這一行 - > root:to =>'cities#index'

打開命令提示符(生成視圖和控制器)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



編輯文件c:\ Sites \ world \ app \ models \ city.rb看起來像這樣

class City < ActiveRecord::Base
 set_table_name "city"
end

編輯文件c:\ Sites \ world \ config \ database.yml,看起來像這樣

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

添加到gemfile

gem 'mysql2'

打開命令提示符窗戶cmd,而不是Git Bash(運行你的應用程序!)
導航到您的應用程序文件夾(c:\ Sites \ world)

rails s

在這裡打開瀏覽器 - > http:// localhost:3000

---獲取一個使用MySQL的Rails 3應用程序---


如果你仍然有麻煩... ...。

嘗試安裝

   sudo apt-get install ruby1.9.1-dev

解決方案僅適用於Mac OS X

如果您已經使用homebrew安裝了MySQL,那麼對我而言,卸載MySQL以及通過MySQL網站( https://www.mysql.com/ )安裝MySQL Community Edition是非常有效的。

安裝完畢後,只需重新輸入gem install mysql2命令,或者如果需要, sudo gem install mysql2 ,如果獲得權限拒絕的問題。



你必須安裝一些依賴項

sudo apt-get install libmysql-ruby libmysqlclient-dev

在Ubuntu / Debian和其他使用aptitude的發行版中:

sudo apt-get install libmysql-ruby libmysqlclient-dev

軟件包libmysql-ruby已被淘汰,並被ruby-mysql取代。 This是我找到解決方案的地方。

如果因為無法找到libmysql-ruby而導致上述命令無效,則以下內容應該足夠了:

sudo apt-get install libmysqlclient-dev

在Red Hat / CentOS和其他使用yum的發行版上:

sudo yum install mysql-devel

在Mac OS X上使用Homebrew

brew install mysql


對於windows用戶:你可以設置你的mysql的lib和include路徑,例如,如果你使用xampp,你可以像這樣:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'

得到了“你必須先安裝開發工具。” 升級到Mac OS X Mountain Lion後嘗試安裝mysql2 gem時發生錯誤。 顯然,這種升級會刪除命令行編譯器。

修理:

  • 我卸載了我非常舊版本的Xcode(在/ Developer / Library中運行卸載腳本)。 然後刪除/ Developer目錄。
  • 去了AppStore並下載了Xcode。
  • 啟動了Xcode並進入了首選項 - >下載,並安裝了命令行工具。

我也有這個錯誤。 通過安裝開發包來解決。 我正在使用拱門,它是:

sudo pacman -S base-devel

其中安裝了:

m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config

但我認為它實際上需要make和gcc。 錯誤輸出說(在我的機器等):

“你必須先安裝開發工具。”

所以這是一個明顯的決定,它有幫助。


我只是想為Mac用戶專門添加這個答案。

我的服務器運行得很好,直到我更新了我的xcode。 在啟動我的Rails服務器的同時,錯誤如此顯示

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
    checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-  
    p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an    
    executable file. (RuntimeError)

並且有建議在錯誤信息的末尾安裝mysql2 gem。 所以當我嘗試安裝它時,我得到了上面提到的錯誤。 我得到的錯誤如下

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

所以正如在這篇文章中建議,我試著'brew安裝mysql',並且說已經安裝了mysql版本等。 但是在它說話之前就有警告

Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license

然後我嘗試了這個sudo xcodebuild -license並在最後輸入'agree'。 您必須成為同意許可證的根源。

在此之後,我再次嘗試捆綁安裝,然後一切正常正常工作。 [即使由於這個xcode更新,我也有我的塔問題。]


我在我的mac上遇到這個錯誤,發現我需要從mysql 32位升級到mysql 64位才能讓這個錯誤消失。 我在intel macbook pro上用ruby 1.9.2和rails3.0.0運行OSX 10.6

我還需要安裝xcode才能獲得像編譯gem所需的“make”之類的unix實用程序。

一旦完成,我可以運行gem install mysql和gem install mysql2而不會報錯。


我有幾台計算機,32位和64位處理器,它們在Ubuntu Linux上運行,Maverick(10.10)發布。

我有同樣的問題,對我來說, sudo apt-get install libmysql-ruby libmysqlclient-dev做的工作!


我通過1)獲得了構建在Mac OS X 10.6.6上的gem)確保安裝了開發工具包2)從源代碼中下載當前MySQL包(5.5.8)3)從cmake.org安裝cmake工具4 )按照mysql配置文件中INSTALL-SOURCE的第2.11節中的說明進行操作5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include gem已成功構建,但文檔中存在兩個錯誤: rdoc和ri抱怨。 但是現在當我嘗試要求'mysql2'時,我得到了一個

LoadError: no such file to load -- mysql2/mysql2

我希望我得到的錯誤是找不到libmysqlclient.16.dylib,因為我們在另一篇文章中找到了它(搜索install_name_tool)。

我的$ PATH中有/ usr / local / mysql(這是我的源代碼和構建文件所在的位置),所以我有點難住。 如果有人有任何想法,我會在睡了幾個小時後再回來看看。


解決了mysql-dev問題之後,您可能需要刪除錯誤的mysql2安裝。 仔細查看$ bundle安裝後的消息。 你可能需要

rm -rf vendor/cache/
rm -rf ./Zentest

這將清除不良的mysql2安裝,以便最終的$ bundle安裝可以創建一個好的安裝。





mysql2