在 macOS Sierra 上安装 mysql2 gem 出错

在 macOS Sierra 上安装 mysql2 gem 出错

阅读更多:MySQL 教程

问题描述

在安装 mysql2 gem 时,执行 gem install mysql2 命令时,可能会遇到以下错误:

Building native extensions. This could take a while...
ERROR:  Error installing mysql2:
    ERROR: Failed to build gem native extension.

    current directory: /Users/user/.rvm/gems/ruby-2.5.1/gems/mysql2-0.4.10/ext/mysql2
/Users/user/.rvm/rubies/ruby-2.5.1/bin/ruby -r ./siteconf20180703-80872-yhauc4.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
...

它表明无法在当前环境下安装 mysql2 gem。

原因分析

这个错误的原因是因为 macOS Sierra 系统默认不安装 MySQL 客户端库,在编译执行 mysql2 gem 时,会无法找到 MySQL 客户端库。

解决方法

有多种解决方法,下面简述常用的两种:

安装 MySQL 客户端

在 macOS Sierra 上,可以通过 Homebrew 命令安装 MySQL 客户端:

$ brew install mysql

安装完成后,重新安装 mysql2 gem 即可:

$ gem uninstall mysql2
$ gem install mysql2

这样就可以成功安装了。

指定 MySQL 客户端路径

如果你不想安装 MySQL 客户端,也可以通过指定 MySQL 客户端路径来解决问题:

gem install mysql2 -- --with-mysql-dir=/usr/local/opt/mysql

其中 /usr/local/opt/mysql 是 MySQL 客户端的默认安装路径,你需要根据实际安装情况指定。

总结

在 macOS Sierra 上安装 mysql2 gem 出错的问题,是由于系统默认不安装 MySQL 客户端库导致的。为了解决这个问题,你可以通过安装 MySQL 客户端或指定 MySQL 客户端路径的方式来解决。这里我们推荐使用 Homebrew 安装方式来得到 MySQL 客户端。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程