我在尝试为Rails安装mysql2
gem时遇到了一些问题。当我尝试通过运行bundle install
或gem install mysql2
来安装它时,它会给我以下错误:
安装mysql2时出错:错误:无法构建gem原生扩展。
如何解决此问题并成功安装mysql2
?
答案 0 :(得分:885)
在使用aptitude的Ubuntu / Debian和其他发行版上:
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
答案 1 :(得分:58)
我在Mac上并使用homebrew来安装开源程序。我确实需要安装mac Dev工具才能安装自制软件,但之后这很简单:
brew install mysql
安装mysql。我从没有过mysql gem问题。
答案 2 :(得分:34)
这是 Windows用户的解决方案,希望有所帮助!
安装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
使用默认安装 开发者机器-MySQL Server配置 -
港口:3306
windows服务名称:MySQL55
mysql root pass:root(以后你可以改一下)
(用户名:root)
-MySQL Server配置 ----用于mySQL安装---
---安装mysql2 Gem ---
重要提示:使用Git Bash命令行执行此操作(这是使用railsinstaller安装的) - >开始/ 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 \ include“'
现在gem应该已正确安装
最后从
复制libmysql.dll文件 C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib
到
C:\ Rails的\ Ruby1.9.2 \ BIN
---安装mysql2 Gem ---
如果你不确定如何创建一个带有MySQL的Rails 3应用程序,你现在可以使用你的Rails应用程序了......
---使用MySQL获取Rails 3应用程序---
打开命令提示符(不是Git Bash) - >启动/ CMD
导航到您的文件夹(c:\ Sites)
创建新的rails应用程序
rails new world
删除文件c:\ Sites \ world \ public \ index.html
编辑文件c:\ Sites \ world \ config \ routes.rb
添加此行 - > root:to => '城市#索引'
打开命令提示符(生成视图和控制器)
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'
打开命令提示符 windows cmd,而不是Git Bash(运行你的应用!)
导航到您的应用程序文件夹(c:\ Sites \ world)
rails s
在此处打开您的浏览器 - &gt; http://localhost:3000
---使用MySQL获取Rails 3应用程序---
答案 3 :(得分:20)
我有几台计算机,32位和64位处理器,它们运行在Ubuntu Linux,Maverick(10.10)版本上。
我遇到了同样的问题,对我来说,问题
的 sudo apt-get install libmysql-ruby libmysqlclient-dev
强>
做了这个工作!!!
答案 4 :(得分:15)
MacOS用户的另一种方式
如果您使用“brew”来安装mysql:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
x.x.x =您要安装的mysql2 gem的版本
y.y.y =您已安装ls /usr/local/Cellar/mysql
的mysql版本,以便找到它。
答案 5 :(得分:10)
对于 MacOS Mojave :
df.astype({'col1': 'int32'}).dtypes
答案 6 :(得分:7)
您是否尝试过使用
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
指定base目录的位置以及完成gem安装所需的MySQL库路径?
来源: MySQL Gem Install ERROR: Failed to build gem native extension MySQL Forums :: Ruby :: Help needed with installing MySQL binding for Ruby
答案 7 :(得分:7)
在Ubuntu(18.04)
我能够通过运行以下命令来解决此问题:
sudo apt-get install build-essential libmysqlclient-dev
gem install mysql2
答案 8 :(得分:7)
如果您正在使用yum,请尝试:
sudo yum install mysql-devel
答案 9 :(得分:5)
这在Windows中解决了我的问题:
subst X: "C:\Program files\MySQL\MySQL Server 5.5"
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt
subst X: /D
答案 10 :(得分:5)
如果您仍然遇到问题......
尝试安装
sudo apt-get install ruby1.9.1-dev
答案 11 :(得分:4)
我在Windows 7上遇到过这个问题。这显然是一个不兼容的问题,解决方案如下:
从较旧的InstantRails安装程序下载libmySQL.dll
文件。它可以从InstantRails GitHub repo获得。
接下来,将该文件复制到您的Ruby / bin文件夹中。
现在,你很高兴;)
答案 12 :(得分:3)
我也遇到了这个错误。通过安装开发包解决。我正在使用拱门,它是:
sudo pacman -S base-devel
安装了:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
但我认为它实际上需要make和gcc。错误输出说(在我的机器上,除其他外):
“您必须先安装开发工具。”
所以这是一个明显的决定,它有所帮助。
答案 13 :(得分:3)
在Debian Stretch上,对我有用的软件包是 default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
答案 14 :(得分:3)
您必须安装一些依赖项
sudo apt-get install libmysql-ruby libmysqlclient-dev
答案 15 :(得分:2)
我在我的mac上遇到了这个错误,发现我需要从mysql 32bit升级到mysql 64位才能让这个错误消失。我使用ruby 1.9.2和rails3.0.0
在intel macbook pro上运行OSX 10.6我还需要安装xcode才能获得编译gem所需的unix实用程序,如“make”。
一旦完成,我就可以运行gem install mysql和gem install mysql2而不会出错。
答案 16 :(得分:1)
解决方案仅适用于Mac OS X
如果你用自制软件安装MySQL,对我有用的是卸载MySQL,并通过MySQL网站(https://www.mysql.com/)安装MySQL Community Edition。
安装完成后,只需重新输入命令gem install mysql2
或必要时sudo gem install mysql2
,如果您收到权限被拒绝的问题。
答案 17 :(得分:1)
对于Windows用户: 你设置你的mysql的lib和include路径,例如,如果你使用xampp就可以这样:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
答案 18 :(得分:0)
在我看来,这有所帮助:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
然后:
gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
结果:
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
答案 19 :(得分:0)
libmysql-ruby
已被淘汰并被替换。新命令:
sudo apt-get install ruby-mysql libmysqlclient-dev
答案 20 :(得分:0)
我可以看到大多数人都找到了这个问题的解决方案,这主要是因为但不限于缺少软件包,这是在我清除 mysql 并重新安装它后发生的。我必须运行此命令才能解决我的问题:
sudo apt-get install libmysqlclient-dev
这个命令帮助我解决了我的问题
答案 21 :(得分:0)
答案 22 :(得分:0)
我只是想为 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 install 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
并在最后键入“同意”。你必须是root才能同意许可。
在此之后,我再次尝试捆绑安装,然后一切正常。 [即使由于这个xcode更新,我的塔也有问题。]
答案 23 :(得分:0)
您遇到此问题是因为您尚未安装MySql。在安装mysql2 gem之前。安装MySQL。之后,mysql2 gem将安装。
答案 24 :(得分:0)
得到“你必须先安装开发工具。”尝试在升级到Mac OS X Mountain Lion后安装mysql2 gem 时出错。显然,执行此升级会删除命令行编译器。
修复:
答案 25 :(得分:0)
下载正确版本的mysqllib.dll然后将其复制到ruby bin真的适合我。请点击此链接[{3}}
答案 26 :(得分:0)
更正了mysql-dev问题之后,您可能需要删除错误的mysql2安装。 $ bundle install之后仔细查看消息。你可能需要
rm -rf vendor/cache/
rm -rf ./Zentest
这将清除错误的mysql2安装,以便最终的$ bundle安装可以创建一个好的。
答案 27 :(得分:0)
如果仍然出现错误,请按照Rails 3上的mysql2 gem安装步骤进行操作 -
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
大多数用户都可以安装mysql2 gem。
答案 28 :(得分:0)
我获得了在Mac OS X 10.6.6上构建的gem
1)确保已安装Developer工具包
2)从Source下载当前的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(这是我的源文件和构建文件所在的位置),所以我有点难过。如果有人有任何想法,我会在睡了几个小时后再回来看看。