Answers:
在Ubuntu / Debian和其他使用aptitude的发行版上:
sudo apt-get install libmysql-ruby libmysqlclient-dev
软件包libmysql-ruby
已被淘汰,并由代替ruby-mysql
。这是我找到解决方案的地方。
如果上述命令由于libmysql-ruby
找不到而无法使用,则以下内容就足够了:
sudo apt-get install libmysqlclient-dev
在Red Hat / CentOS和其他使用yum的发行版上:
sudo yum install mysql-devel
在带有Homebrew的 Mac OS X上:
brew install mysql
libmysqlclient-dev
就足够了。
我在Mac上并使用自制软件安装开源程序。我确实必须安装mac Dev工具才能安装自制软件,但是在那之后很简单:
brew install mysql
安装mysql。从那以后我就没有mysql gem问题。
brew link mysql --force
。
这是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服务器配置-
端口:3306
Windows服务名称:MySQL55
mysql root密码: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 \ include“'
现在,gem应该已经正确安装了,
最后从复制libmysql.dll文件
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib
到
C:\ Rails \ Ruby1.9.2 \ bin ---安装mysql2 Gem-
现在,如果不确定如何使用MySQL创建Rails 3应用,现在就可以在MySQL上使用Rails应用了。
---获取与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应用程序-
gem install mysql2 -- --with-mysql-dir=C:\xampp\mysql
-- --with-mysql-dir="C:\xampp\mysql"
我的引号被删除。谢谢
MacOS用户的另一种方法
如果您使用“酿造”来安装mysql:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
xxx =您要安装的mysql2 gem
的版本yyy =您已ls /usr/local/Cellar/mysql
找到可安装的mysql的版本。
您是否尝试过使用
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
指定基本目录的位置以及完成gem安装所需的MySQL库的路径?
来源: MySQL Gem Install错误:无法构建gem本机扩展 MySQL论坛:: Ruby ::安装针对Ruby的MySQL绑定所需的帮助
which mysql
然后lib
从那里找到目录来找到它。
这一次在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
gem install mysql2 --platform=ruby -- --with-mysql-dir=X: --without-opt-dir
我在Windows 7上遇到了这个问题。这显然是不兼容的问题,解决方案如下:
libmySQL.dll
从较旧的InstantRails安装程序下载文件。可从InstantRails GitHub存储库中获得。
接下来,将该文件复制到您的Ruby / bin文件夹中。
现在,你很好;)
bundle install
。
在Debian Stretch上,对我有用的软件包是default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
就我而言,这有助于:
$ 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
请参阅此帖子(警告:内部为日语)。
解决方案仅适用于Mac OS X
如果您使用自制软件安装了MySQL,那么对我有用的是卸载MySQL,然后通过MySQL网站(https://www.mysql.com/)安装MySQL Community Edition 。
安装后,如果遇到权限被拒绝的问题,只需将命令重新输入到gem install mysql2
或(如有必要)即可sudo gem install mysql2
。
我通过以下方式在Mac OS X 10.6.6上构建了gem:1)确保已安装Developer Tools软件包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(这是我的源文件和构建文件所在的位置),所以我有些困惑。如果有人有任何想法,我会在几个小时的睡眠后再回来检查。
如果仍然出现错误,请在Rails 3上按照mysql2 gem安装的步骤进行操作-
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
大多数用户都可以在其中安装mysql2 gem。
下载正确版本的mysqllib.dll,然后将其复制到ruby bin对我确实有效。按照此链接说明为错误的mysql客户端库编译的mysql2 gem
因为没有安装MySql,所以出现了此问题。在安装mysql2 gem之前。安装MySQL。之后,将安装mysql2 gem。
我只想为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更新,我的塔架也出现了问题。]