使用mysql db创建新的app rails时出错

时间:2016-11-20 16:45:44

标签: ruby-on-rails ruby mysql2

大家好我是rails的新手,我安装了所有东西ruby rails mysql,一切都做得很好,健康,当我试图创建一个新的应用程序'rails new blog'例如一切都做得很好,但每当我添加'-d mysql'它卡住了,并且知道一切都安装得好了

Aikers-MBP:~Aiker $ brew install mysql 警告:已经安装了mysql-5.7.16 艾克斯-MBP:~Aiker $

这里我试图安装

安装mysql2(0.4.5)时发生错误,Bundler无法继续。 在捆绑之前确保gem install mysql2 -v '0.4.5'成功。 Aikers-MBP:kar Aiker $ rake db create 无法在Gemfile中列出的任何gem源中找到gem'rail(= 4.2.6)'或在此计算机上可用。 运行bundle install以安装缺少的宝石。 Aikers-MBP:kar Aiker $ gem install mysql2 -v'0.4.5' 构建原生扩展。这可能需要一段时间...... 错误:安装mysql2时出错:     错误:无法构建gem原生扩展。

2 个答案:

答案 0 :(得分:0)

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/Aiker/Desktop/blog/vendor/bundle/gems/mysql2-0.4.5/ext/mysql2
/Users/Aiker/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20161121-68854-12pc3sf.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
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
checking for rb_big_cmp()... yes
-----
Using mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
-----
-----
Setting libpath to /usr/local/Cellar/mysql/5.7.16/lib
-----
creating Makefile

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/Aiker/Desktop/blog/vendor/bundle/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/mkmf.log

current directory: /Users/Aiker/Desktop/blog/vendor/bundle/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/Aiker/Desktop/blog/vendor/bundle/gems/mysql2-0.4.5/ext/mysql2
make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
compiling statement.c
linking shared-object mysql2/mysql2.bundle
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/Aiker/Desktop/blog/vendor/bundle/gems/mysql2-0.4.5 for inspection.
Results logged to /Users/Aiker/Desktop/blog/vendor/bundle/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.5/gem_make.out

An error occurred while installing mysql2 (0.4.5), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.5'` succeeds before bundling.

答案 1 :(得分:0)

您的系统无法找到OpenSSL中存在的var prodAry = [1, 2, 3]; prodAry.forEach(function(product, i) { // create elements for table var $tr = $('<tr>'); var $asin = $('<td>'); var $title = $('<td>'); var $price = $('<td>'); var $mpn = $('<td>'); var $newAsin = $asin.text(i); var $newTitle = $title.text(i); var $newPrice = $price.text(i); var $newMpn = $mpn.text(i); var $newTr = $tr.append($newAsin, $newTitle, $newPrice, $newMpn); $('#products-table > tbody:last-child').append($newTr); }); 库。要解决此问题,您需要运行:

lssl

在此之后尝试安装brew install openssl gem。如果仍然失败,则可能需要通过运行以下命令重新安装Xcode命令行工具:

mysql2

希望这能解决您的安装问题。 :)