代码之家  ›  专栏  ›  技术社区  ›  Kieran Senior

MySQL安装:错误:未能生成gem本机扩展

  •  69
  • Kieran Senior  · 技术社区  · 16 年前

    我正在尝试将MySQL安装到最新版本,因为安装过程中的某个地方出错了。我执行命令 gem install mysql 我收到以下信息:

    正在生成本机扩展。这个 可能需要一段时间…错误:错误 安装MySQL:错误:未能 构建gem本机扩展。

    /系统/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告: 不安全的世界可写目录/usr/bin 在路径中,模式040777 extconf.rb:4: 警告:不安全的世界可写目录 /路径中的USR/bin,模式040777 extconf.rb:7:警告:不安全的世界 路径、模式下的可写dir/usr/bin 040777 mkmf.rb找不到头文件 对于Ruby AT /system/library/frameworks/ruby.framework/versions/1.8/usr/lib/ruby/ruby.h

    gem文件将保留在 /库/ruby/gems/1.8/gems/mysql-2.8.1 供检查。结果记录到 /库/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

    我已经搜索并尝试了很多东西,从安装特定的版本到尝试在没有任何运气的情况下重新安装Ruby。

    你知道我哪里会出错吗?

    我正在尝试将MySQL安装到最新版本,因为安装过程中的某个地方出错了。我执行命令 gem安装mysql 我收到以下信息:

    正在生成本机扩展。这个 可能需要一段时间…错误:错误 安装MySQL:错误:未能 构建gem本机扩展。

    /系统/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告: 不安全的世界可写目录/usr/bin 在路径中,模式040777 extconf.rb:4: 警告:不安全的世界可写目录 /路径中的USR/bin,模式040777 extconf.rb:7:警告:不安全的世界 路径、模式下的可写dir/usr/bin 040777 mkmf.rb找不到头文件 红宝石在 /system/library/frameworks/ruby.framework/versions/1.8/usr/lib/ruby/ruby.h

    gem文件将保留在 /库/ruby/gems/1.8/gems/mysql-2.8.1 供检查。结果记录到 /库/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

    我已经搜索并尝试了很多东西,从安装特定的版本到尝试在没有任何运气的情况下重新安装Ruby。

    你知道我哪里会出错吗?

    编辑 :我从我的雪豹DVD上安装了xcode,错误只是稍微变了一下:

    正在生成本机扩展。这可能需要一段时间… 错误:安装MySQL时出错: 错误:未能生成gem本机扩展。

    /系统/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:路径中的不安全世界可写目录/usr/bin,模式040777 extconf.rb:4:警告:路径中的不安全世界可写目录/usr/bin,模式040777 extconf.rb:7:警告:路径中的不安全世界可写目录/usr/bin,模式040777 extconf.rb:17:警告:路径中的不安全世界可写目录/usr/bin,模式040777 正在检查-lmysqlclient中的mysql_query()…不 正在检查-lm中的main()…对 正在检查-lmysqlclient中的mysql_query()…不 正在检查-lz中的main()…对 正在检查-lmysqlclient中的mysql_query()…不 正在检查-lsocket中的main()…不 正在检查-lmysqlclient中的mysql_query()…不 正在检查-lnsl中的main()…不 正在检查-lmysqlclient中的mysql_query()…不 正在检查-lmygcc中的main()…不 正在检查-lmysqlclient中的mysql_query()…不 *extconf.rb失败* 由于某些原因无法创建makefile,可能缺少 必要的库和/或头。有关更多信息,请查看mkmf.log文件 细节。您可能需要配置选项。

    提供的配置选项: 用OPT DIR --不带opt dir --包含可选内容 --不带opt include=$opt dir/include ——使用Opt LIB --不带opt lib=$opt dir/lib --带make prog --不带make prog --SRCdir= ——库迪尔 --ruby=/system/library/frameworks/ruby.framework/versions/1.8/usr/bin/ruby --使用mysql配置 --没有mysql配置 --使用mysql dir --没有mysql dir --使用MySQL包括 --不带mysql include=$mysql dir/include --使用MySQL库 --不带mysql lib=$mysql dir/lib --使用mysqlclientlib --没有mysqlclientlib 用MLIB ——没有MLIB --使用mysqlclientlib --没有mysqlclientlib 用ZLIB ——没有ZLIB --使用mysqlclientlib --没有mysqlclientlib --带socketlib --没有socketlib --使用mysqlclientlib --没有mysqlclientlib --用NSLLIB --没有nsllib --使用mysqlclientlib --没有mysqlclientlib 用MygCclib --没有mygclib --使用mysqlclientlib --没有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,我得到的错误是:

    错误2002(hy000):无法通过socket'/tmp/mysql.sock'(2)连接到本地mysql服务器

    所以我想我什么都试过了。

    **解决*

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

    13 回复  |  直到 7 年前
        1
  •  61
  •   Trevoke    13 年前

    Installing the mysql gem on OSX

    在终点站……首先做一个locate mysql_u 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
    
        2
  •  159
  •   cartoonist    14 年前

    在Debian(或Ubuntu)系统上,只需使用以下方法安装libmysqlclient dev包:

    sudo apt-get install libmysqlclient-dev
    

    然后:

    gem install mysql
    

    安装时不会出错。

        3
  •  17
  •   Aurril Thorbjørn Ravn Andersen    14 年前

    首先,您需要区分mysql作为服务器、mysql作为客户机和ruby绑定到mysql。

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

    gem install mysql
    

    您需要Ruby的开发头(在Ubuntu中,它是ruby dev包)和MySQL客户机的开发头(当前 libmysqlclient16-dev 在Ubuntu)。我不知道它们在Mac上的名称是否不同,但是在安装了它们之后,Ruby绑定应该可以毫无错误地安装。

        4
  •  9
  •   Sathyajith Bhat ron tornambe    14 年前

    找到了一些人 this post 乐于助人。

    另外,我需要先输入:

    yum install mysql-devel
    

    然后:

    gem install mysql 
    

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

    gem install mysql -- --with-mysql-config=/usr/local/mysql/mysql_config
    
        5
  •  5
  •   0bserver07    12 年前

    奥斯克斯山上的狮子:如果你有 brew 然后安装 brew install mysql 然后跟随 instructions 在您的计算机上使用MySQL创建测试数据库。 你不必一路走过,我不需要 在我做了这些之后,我可以捆绑安装和耙。

        6
  •  3
  •   rahul patil    10 年前

    为了解决

    gem::ext::buildError:错误:未能生成gem本机扩展 mysql2出错,

    我想 红宝石红宝石 被改变了 红宝石MySQL

    只需尝试以下命令,

    sudo apt-get install ruby-mysql

    &然后

    sudo apt-get install libmysqlclient-dev
    
        7
  •  2
  •   Richard Burton    14 年前

    我也忘记了 安装 首先是MySQL。遵循这个指南有很大帮助。

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

    以及将这些行添加到my.profile:

    export PATH="/usr/local/mysql/bin:$PATH"
    alias mysql=/usr/local/mysql/bin/mysql
    alias mysqladmin=/usr/local/mysql/bin/mysqladmin
    
        8
  •  0
  •   roman    16 年前

    您可以尝试重新安装最新版本的xcode/dev.tools for snow leopard-这将修复您的错误。

        9
  •  0
  •   Raihan Alam    16 年前

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

        10
  •  0
  •   Vestel    16 年前

    注意:需要使用mysql config=/usr/local/mysql/bin/mysql-config指定--key和than

        11
  •  0
  •   AlexeyKa    13 年前

    如果使用percona mysql服务器

    $yum安装percona-server-devel-55

    $gem安装mysql

        12
  •  0
  •   austin    11 年前
    yum -y install gcc mysql-devel ruby-devel rubygems
    gem install mysql2
    
        13
  •  0
  •   Mayur Kambariya    7 年前

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

    之后安装 bundle bundle install