ChatGPT解决这个技术问题 Extra ChatGPT

MySQL 安装:错误:无法构建 gem 原生扩展

由于某些安装出错,我正在尝试将 MySQL 安装到最新版本。我运行命令 gem install mysql 并收到以下信息:

构建原生扩展。这可能需要一段时间... 错误:安装 mysql 时出错:错误:无法构建 gem 原生扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:4:警告:不安全的世界可写目录 /usr/bin 在 PATH,模式 040777 extconf.rb:7:警告:不安全的世界可写目录 /usr/bin 在 PATH,模式 040777 mkmf.rb 在 /System 找不到 ruby 的头文件/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h Gem 文件将继续安装在 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 中以供检查。结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

我已经搜索并尝试了很多东西,从安装特定版本到尝试重新安装 ruby,但没有任何运气。

有什么想法我可能会出错吗?

由于某些安装出错,我正在尝试将 MySQL 安装到最新版本。我运行命令 gem install mysql 并收到以下信息:

构建原生扩展。这可能需要一段时间... 错误:安装 mysql 时出错:错误:无法构建 gem 原生扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:4:警告:不安全的世界可写目录 /usr/bin 在 PATH,模式 040777 extconf.rb:7:警告:不安全的世界可写目录 /usr/bin 在 PATH,模式 040777 mkmf.rb 在 /System 找不到 ruby 的头文件/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h Gem 文件将继续安装在 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 中以供检查。结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

我已经搜索并尝试了很多东西,从安装特定版本到尝试重新安装 ruby,但没有任何运气。

有什么想法我可能会出错吗?

编辑:我从 Snow Leopard DVD 上安装了 XCode,错误只是稍微更改为以下内容:

构建原生扩展。这可能需要一段时间... 错误:安装 mysql 时出错:错误:无法构建 gem 原生扩展。 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:7:警告:PATH 中的不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:17:警告:不安全的世界可写目录 /usr PATH 中的 /bin,模式 040777 检查 -lmysqlclient 中的 mysql_query() ... 不检查 -lm 中的 main() ... 是 检查 -lmysqlclient 中的 mysql_query() ... 不检查 - lz... 是在 -lmysqlclient 中检查 mysql_query()... 在 -lsocket 中不检查 main() ... 在 -lmysqlclient 中不检查 mysql_query() ... 在 -lnsl 中不检查 main()。 .. 不检查 -lmysqlclient 中的 mysql_query() ... 不检查 -lmygcc 中的 main() ... 不检查 -lmysqlclient 中的 mysql_query() ... 不 * extconf.rb 失败 * 由于无法创建 Makefile出于某种原因,可能缺少必要的库和/或标头s。检查 mkmf.log 文件以获取更多详细信息。您可能需要配置选项。提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib -- without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby --with-mysql-config --without-mysql-config --with-mysql-dir -- without-mysql-dir --with-mysql-include --without-mysql-include=${mysql-dir}/include --with-mysql-lib --without-mysql-lib=${mysql-dir}/ lib --with-mysqlclientlib --without-mysqlclientlib --with-mlib --without-mlib --with-mysqlclientlib --without-mysqlclientlib --with-zlib --without-zlib --with-mysqlclientlib --without- mysqlclientlib --with-socketlib --without-socketlib --with-mysqlclientlib --without-mysqlclientlib --with-nsllib --without-nsllib --with-mysqlclientlib --without-mysqlclientlib --with-mygcclib --without- mygcclib --with-mysqlclientlib --without-mysqlclientlib Gem 文件将继续安装在 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 以供检查。结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

在命令行上执行“which mysql”不会返回任何内容,这意味着它无法识别它。我还安装了 MySQL 系统首选项选项,我无法阻止 MySQL 运行。现在我完全不知道该怎么做!

编辑编辑

我刚刚使用本指南完全重新安装了 MySQL http://hivelogic.com/articles/installing-mysql-on-mac-os-x

不幸的是,这也不起作用,我仍然收到相同的错误。我什至不能在命令行中执行 mysql -uroot,我收到以下错误:

ERROR 2002 (HY000): 无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)

所以我想我已经尝试了一切。

**解决了*

对不起,这不起作用的原因是因为 MySQL 路径。我在这里写过博客:http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/


c
cartoonist

在 Debian(或 Ubuntu)系统上,只需使用以下命令安装 libmysqlclient-dev 软件包:

sudo apt-get install libmysqlclient-dev

接着:

gem install mysql

它将安装没有任何错误。


伟大的!在 Ubuntu 14.10 64 位中工作
也为我工作,Ubuntu 14.4 LTS 值得信赖
T
Trevoke

Installing the mysql gem on OSX

在终端中..首先执行'locate mysql_config',然后将以下命令中的路径替换为该文件所在的位置。

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed

我为 OSX 安装了 XAMPP,所以我的命令是:gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config。不需要 sudo!
仅供参考。我仍然无法安装,但后来我意识到 /usr/local/mysql/bin 不在我的 PATH 环境变量中。一旦我在我的 PATH 上得到它,我就可以毫无问题地安装它。
我必须 sudo locate mysql_config 才能获得配置路径。否则,它返回消息:WARNING: The locate database (/var/db/locate.database) does not exist. ...
在这个答案最终对我有用之前,我必须安装 xcode 命令行工具。请参阅此相关答案:stackoverflow.com/questions/761521/…,然后尝试 sudo gem install mysql1 etc,就像在此答案中一样:)
@JoshBurson如果您想要在OSX上从头开始安装mysql的完整指南,我认为这是一个完全不同的故事。
A
Aurril

首先,您需要区分 MySQL 作为服务器、MySQL 作为客户端以及 Ruby 绑定到 MySQL。

我对 Mac 不熟悉,但对于 *nix 操作系统,您需要通过包管理器安装 MySQL。安装 Ruby 绑定

gem install mysql

您需要 ruby 的开发头文件(在 Ubuntu 中是 ruby-dev 包)和 MySQL-Client 的开发头文件(目前在 Ubuntu 中为 libmysqlclient16-dev)。我不知道它们在 Mac 上的名称是否不同,但是在你安装了这些之后,Ruby 绑定应该安装而没有任何错误。


毋庸置疑,有一个多包装版本可以两者兼得。我也经历过这个过程。我认为您是对的,我确实需要区分两者,因为这主要是我的问题。或许,另一种选择是安装 MAMP 并使用它?那我需要什么?
MAMP 代表 Mac、Apache、MySQL、Php。所以你仍然需要一个 MySQL-Server 和 Apache 2,以及 apache 的 php 库。我不确定您是否可以在包管理器中选择 MAMP,它会安装所有必需的文件。也许 Mac 用户可以帮助你。
事实上,它无法满足对 MAMP 的需求,但它只是提供 MySQL 实例的一种简单方法。
这正是我在 Ubuntu 上所需要的:sudo apt-get install ruby-devsudo gem install mysql。谢谢!
是的,这行得通:'sudo apt-get install ruby-dev libmysqlclient16-dev' 然后'sudo gem install mysql'
S
Sathyajith Bhat

许多人发现this post很有帮助。

另外,我需要先输入:

yum install mysql-devel

接着:

gem install mysql 

对于某些人,您可能需要输入:

gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config

伙计,如果我能给你2个,我会的!虽然很高兴注意到这个 yum 命令可能只对某些版本的 LINUX 有用。就我而言,CentOS 6.0
0
0bserver07

在 OSX Mountain Lion 上:如果您已安装 brew,则安装 brew install mysql 并按照 instructions 在您的机器上使用 mysql 创建测试数据库。你不必一路走下去,我不需要这样做之后,我就可以捆绑安装和耙。


这是唯一对我有用的解决方案!队友的欢呼声!
r
rahul patil

为了解决

Gem::Ext::BuildError: ERROR: Failed to build gem native extension error for mysql2, 我认为 libmysql-ruby 已被 ruby-mysql 更改

只需尝试以下命令,

sudo apt-get install ruby-mysql

& 然后

sudo apt-get install libmysqlclient-dev

P
Promise Preston

我有类似的经历,所以这是我尝试过的事情

首先,我尝试通过在终端中运行以下命令来安装 mysql 所需的包

sudo apt-get install build-essential libmysqlclient-dev

其次,我尝试通过在终端中运行以下命令来更新系统上的 rubygems

sudo gem update --system

但我仍然遇到同样的问题。

这对我有用

经过大量研究后,我意识到我使用的是几乎过时的 mysql gem 版本。我只需要使用 mysql2 gem (mysql2 gem) 而不是 mysql gem,所以我通过在终端中运行以下命令来修复它

gem install mysql2

这对我来说很好。在运行最后一个命令之前,请确保您已经运行了第一个和第二个命令,以确保您的系统上一切正常。

就这样。

我希望这有帮助


这个命令救了我gem install mysql2谢谢
R
Richard Burton

我也忘记了首先实际安装 MySQL。遵循本指南有很大帮助。

http://www.djangoapp.com/blog/2011/07/24/installation-of-mysql-server-on-mac-os-x-lion/

以及将这些行添加到我的 .profile 中:

export PATH="/usr/local/mysql/bin:$PATH"
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

r
roman

你可以尝试重新安装最新版本的xcode/dev。雪豹工具 - 这应该可以解决您的错误


这是我做的第一件事。我的机器上安装了 Snow Leopard 的 XCode 版本。
R
Raihan Alam

如果您是从源代码安装,这里有一个教程。如果它有帮助会很高兴http://raihan90.blogspot.com/2009/03/mysql-step-by-step-hacking-into-mysql.html


V
Vestel

注意:你需要指定--key,而不是--with-mysql-config=/usr/local/mysql/bin/mysql_config


同样,这个答案在很多地方都是浮动的。在我的例子中,它不起作用。另外,我相信 /usr/local/ 中不存在 mysql。
A
AlexeyKa

如果你使用 Percona Mysql 服务器

yum install Percona-Server-devel-55

$ 宝石安装 mysql


a
austin
yum -y install gcc mysql-devel ruby-devel rubygems
gem install mysql2

M
Mayur Kambariya

您的 Ubuntu 操作系统需要为 mysql 客户端安装库 sudo apt-get install libmysqlclient-dev

之后只需安装 bundlebundle install