我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:
安装mysql2错误:错误:未能建立gem本地扩展。
我如何解决这个问题并成功安装mysql2?
我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:
安装mysql2错误:错误:未能建立gem本地扩展。
我如何解决这个问题并成功安装mysql2?
当前回答
我用的是mac电脑,用自制软件安装开源程序。为了安装自制软件,我不得不安装mac Dev工具,但在那之后,它是一个简单的:
brew install mysql
安装mysql。我没有一个mysql宝石的问题,因为。
其他回答
对于MacOS Mojave:
——with-cppflags=-I/usr/local/opt/openssl/include . gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib——with-cppflags=-I/usr/local/opt/openssl/include
这里有一个解决方案,希望对Windows用户有帮助!
在Windows上使用Rails 3使用MySQL
安装railsinstaller -> www.railsinstaller.org(我安装到c:\Rails) 安装MySQL(我使用MySQL 5.5) -> dev.mysql.com/downloads/installer/
--- for mySQL installation --- If you dont already have these two files installed you might need them to get your MySQL going 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 Use default install Developer Machine -MySQL Server Config- port: 3306 windows service name: MySQL55 mysql root pass: root (you can change this later) (username: root) -MySQL Server Config- --- for mySQL installation ---
安装mysql2 Gem 重点:使用Git Bash命令行(这是安装在railsinstaller) -> start/Git Bash ——with-mysql-lib="c:\Program Files\MySQL\ Server 5.5\lib"——with-mysql-include="c:\Program Files\MySQL\ Server 5.5\include"' 现在gem应该已经正确安装了 最后复制libmysql.dll文件 C:\Program Files\MySQL\MySQL Server 5.5\lib 来 Rails C: \ \ Ruby1.9.2 \ bin 安装mysql2 Gem
你现在将能够使用你的Rails应用程序与MySQL,如果你不确定如何创建一个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应用程序
在升级到Mac OS X Mountain Lion后尝试安装mysql2 gem时,出现“您必须先安装开发工具”错误。显然,执行此升级将删除命令行编译器。
修复:
我卸载了旧版本的Xcode(在/Developer/Library中运行卸载脚本)。然后删除“/Developer”目录。 去AppStore下载Xcode。 打开Xcode,进入首选项->下载,安装命令行工具。
如果你仍然有问题....
试着安装
sudo apt-get install ruby1.9.1-dev
针对Windows用户的更新解决方案。我在跑步
Windows 10
MySql 8.0.30
Ruby 3.1.2
我的Ruby版本来自rubyinstaller.org,包含了MYSYS开发工具包
我下载了一个MariaDB C连接器库msi安装文件v3.1.17,运行它,它在程序文件的目录中安装了相关文件。我把这个目录复制到另一个位置,重命名它,这样它就没有任何空格,然后运行命令:
gem install mysql2 --platform=ruby -- --with-mysql-dir="c:/my-mariadb-connector-path-with-no-spaces"
这给了我一颗有用的宝石。
这是该库的特定版本,而不是最新的版本。在MariaDB网站上寻找下载选项有点令人困惑,所以这里是直接下载链接。
https://dlm.mariadb.com/2319542/Connectors/c/connector-c-3.1.17/mariadb-connector-c-3.1.17-win64.msi
在我走到这一步之前,我尝试了好几种方法,但都没有奏效。我在下面列出了它们作为背景信息,但如果你感兴趣的只是一个可行的解决方案,那么你现在可以停止阅读了。
一些来源建议,如果你安装了MYSYS devkit,你可以用下面的命令构建gem:
ridk exec gem install mysql2 --platform=ruby -- --use-system-libraries
这并不适合我。
您可能还看到过建议下载MySQl连接器库的归档版本(6.1)。我尝试了这个,gem编译,但当我尝试启动我的应用程序时,我得到了一个错误消息:“不正确的MySQL客户端库版本!这个gem是为6.1.11编译的,但客户端库是10.5.5。”
在MySQL V8及以上版本中,C库不再是可选的额外选项,而是包含在主安装中。我找到了相关文件,将它们复制到一个没有空格的目录路径,并尝试了通常的命令。宝石再次编译,但应用程序不会启动。这次错误消息显示“此gem是为8.0.30编译的,但客户端库是10.5.5”
我还尝试了MariaDB库的最新版本。错误消息说该gem是为10.6.8编译的。你需要上面描述的特定版本,是的,即使你使用的是Oracle公司分发的“原始”MySql,它也确实是你需要的MariaDB库