首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql未在Windows 7上安装

mysql未在Windows 7上安装
EN

Stack Overflow用户
提问于 2015-05-20 22:12:31
回答 1查看 1.9K关注 0票数 2

不是复制品。这个问题是mysql2,另一个问题是mysql2 gem。他们确实有相同的答案,但另一个问题的答案并没有明确说明解决方案是什么。答案隐藏在评论中。请看黄色文本的答案,这个问题包含了解决方案。

下面是我在Windows上安装mysql时收到的一个错误。

代码语言:javascript
复制
C:\>gem install mysql
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150520-7968-hbly9l.rb extconf.rb
checking for main() in -llibmysql... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --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=C:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --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-libmysqllib
        --without-libmysqllib

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql-
2.9.1 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql-2.9.1/gem_make.out

我是怎么说到这一点的?

  1. 安装了MySQL for Windows。

http://dev.mysql.com/downloads/windows/installer/

  1. 安装了Python for Windows。这个步骤可能与我的错误无关,但是我包括它,因为它是我正在部署的构建所必需的。

https://www.python.org/downloads/

  1. 安装Ruby for Windows。看起来我下载了"rubyinstaller-2.2.2-x64.exe“并安装了它。

http://rubyinstaller.org/downloads/

  1. 安装了红宝石。看来我下载并提取了"rubygems-2.4.7.zip“。

https://rubygems.org/pages/download

然后从Windows命令提示符中运行以下命令:

代码语言:javascript
复制
gem update --system

..。安装在C:/Ruby22-x64/bin/gem中。

代码语言:javascript
复制
gem install rubygems-update

update_rubygems

..。然后cd {文件夹解压缩到}

代码语言:javascript
复制
ruby setup.rb
  1. 然后,我尝试像这样安装mysql。发现了一个错误。 C:>gem安装mysql获取: mysql-2.9.1.gem (100%)错误:安装mysql错误:“mysql”本机创业板需要安装构建工具。 请更新您的路径以包含构建工具或从“DevKit”下载http://rubyinstaller.org/downloads,并按照“http://github.com/oneclick/rubyinstaller/wiki/Development-Kit”的说明进行操作。
  2. 所以我听从了指示。我去了那个页面(http://rubyinstaller.org/downloads)。看来我下载了"DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe".当我解压愚蠢的提取器时,将文件与其他所有内容放在同一个目录中。因此,请确保在下载后和解压缩之前创建一个新文件夹。

然后我执行了这个命令。

代码语言:javascript
复制
ruby dk.rb init

然后我运行了这个命令,得到了一个错误。

代码语言:javascript
复制
ruby dk.rb install

我必须确保"config.yml“文件指向我的机器上的C:\Ruby22-x64文件夹,用于安装Ruby。我删除了注释并更改了路径。然后重新运行命令,它就起作用了。

代码语言:javascript
复制
ruby dk.rb install

然后运行这个命令。

代码语言:javascript
复制
gem install rdiscount --platform=ruby
  1. 然后尝试重新安装mysql。得到了我问题中的错误。真是一颗宝石!“我给你买了珠宝贝蒂,珠宝!” gem安装mysql

2015年5月21日编辑:

根据下面的问题,我得到了一个新的错误。

Ruby MYSQL2 gem installation on windows 7

代码语言:javascript
复制
C:\>gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\
lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysq
l-connector"'
Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-mysql-lib="C:\mysql-connector\lib" --wi
th-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connect
or"'
This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

    C:/Ruby22-x64/bin/ruby.exe -r ./siteconf20150521-10824-1plgdr8.rb extconf.rb
 --with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connec
tor\include" --with-mysql-dir="C:\mysql-connector"
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
-----
Using --with-mysql-dir=C:\mysql-connector\include;C:\mysql-connector\include;C:\
mysql-connector
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --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=C:/Ruby22-x64/bin/$(RUBY_BASE_NAME)
        --with-mysql-dir
        --with-mysql-include=${mysql-dir}/include
        --with-mysql-lib=${mysql-dir}/lib
C:/Ruby22-x64/lib/ruby/2.2.0/rake/task_manager.rb:62:in `[]': Don't know how to
build task 'C:/mysql-connector/lib;C:/mysql-connector/lib;C:/mysql-connector/lib
/libmysql.lib' (RuntimeError)
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:57:in `lookup_prerequisit
e'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `block in prerequis
ite_tasks'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `map'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:53:in `prerequisite_tasks
'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:199:in `invoke_prerequisi
tes'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:178:in `block in invoke_w
ith_call_chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_
chain'
        from C:/Ruby22-x64/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
        from extconf.rb:117:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/mysql2
-0.3.18 for inspection.
Results logged to C:/Ruby22-x64/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0
/mysql2-0.3.18/gem_make.out

C:\>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 22:35:47

“mysql”和“mysql2”包/扩展/gems不适用于Windows7(或任何64位版本的x64 )的x64位版本。您需要安装x86 (32)位版本的Ruby才能正常工作。

因此,我在问题中重复了第三步,并于2013年8月30日采用了luislavena在我的问题(191期)中的意见,安装了1.9版本。这是x86 (32位)版本。从这里弄到的。

http://rubyinstaller.org/downloads/

看起来这个文件的名字是"rubyinstaller-1.9.3-p551.exe“。

然后完成第4步,Ruby必须修复他们的脚本,以便为config.yml版本自动修改x86文件。这次我不需要编辑。

然后,在步骤5中,我安装了这个devkit exe,因为更新版本的Ruby没有一个开发工具包,即x86。

对于步骤6,我将其放入自己的文件夹中。它仍然提取exe根目录中的文件,而不是exe根的文件夹。然后运行除最后一个命令以外的所有命令。它仍然把错误抛在脑后。

"DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe“

然后在第七步,我运行了这个。

代码语言:javascript
复制
gem install mysql

它安装了mysql的x86版本,因为我可以通过运行以下命令看到gem。它非常闪亮,而且看起来很贵!

代码语言:javascript
复制
gem list

5/26/2015更新:

在Windows上安装允许启动Rails服务器的Ruby的最新版本是2.1.6。

运行"rails s“无法启动rails服务器。我不得不回去卸载旧版本的Ruby。请看我的答案。如果您在Windows上,请忽略其他答案。

Remove older versions of Ruby (on Windows)

Windows上唯一允许启动rails服务器的Ruby版本是"rubyinstaller-2.1.6.exe“。"rubyinstaller-2.2.2.exe“引发以下错误:

代码语言:javascript
复制
C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32/lib/nokogiri
.rb:29:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)
        from C:/row/Ruby22/lib/ruby/gems/2.2.0/gems/nokogiri-1.6.6.2-x86-mingw32
/lib/nokogiri.rb:29:in `rescue in <top (required)>'
... 
... continued
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30361280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档