我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:

安装mysql2错误:错误:未能建立gem本地扩展。

我如何解决这个问题并成功安装mysql2?


当前回答

对我来说,这很有帮助:

$ 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

请看这篇文章(警告:里面有日语)。

其他回答

我可以看到大多数人已经找到了这个问题的解决方案,这主要是由于但不限于丢失的软件包,这发生在我身上后,我已经清除mysql并重新安装它。我必须运行这个命令来解决我的问题:

安装libmysqlclient-dev

这个命令帮助我解决了我的问题

你遇到这个问题是因为你没有安装MySql。在安装mysql2 gem之前。安装MySQL。之后将安装mysql2 gem。

根据https://github.com/brianmario/mysql2/issues/1175,我用

gem install mysql2 -- \
 --with-mysql-lib=/usr/local/Cellar/mysql/8.0.26/lib \
 --with-mysql-dir=/usr/local/Cellar/mysql/8.0.26 \
 --with-mysql-config=/usr/local/Cellar/mysql/8.0.26/bin/mysql_config \
 --with-mysql-include=/usr/local/Cellar/mysql/8.0.26/include

从[这里][1]下载连接器C文件。(https://downloads.mysql.com/archives/c-c/) 将文件解压到一个位置,如C:\ror\mysqlC\mysql-connector-c-6.1.11-winx64\lib 使用这个模板

install mysql2——'——with-mysql-lib="$lib_location"——with-mysql-include="$include_location"'

我的安装位置是lib_location -> C:\ror\mysqlC\mysql-connector-c-6.1.11-winx64\lib

——with-mysql-lib="C:\ror\mysqlC\mysql-connector-c-6.1.11-winx64\lib"——with-mysql-include="C:\ror\mysqlC\mysql-connector-c-6.1.11-winx64\include"'

对于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