标签: mysql2

错误"...无法加载此类文件 - mysql2/2.0/mysql2(LoadError)".在带有Ruby 2.0.0的Windows XP上

该命令rails server抛出此错误.

C:/Ruby200/lib/ruby/gems/2.0.0/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': cannot load
 such file -- mysql2/2.0/mysql2 (LoadError)
Run Code Online (Sandbox Code Playgroud)

我使用的红宝石2.0.0RubyInstaller在Windows XP的方块.

我弄清楚问题是什么,但我不知道如何解决它.问题是gem中没有任何2.0/目录mysql2-0.3.11-x86-mingw32.这是railsGemfile安装为其依赖项的gem:

GEM
  remote: https://rubygems.org/
  specs:
     ... many gems here
     mysql2 (0.3.11-x86-mingw32)
     ... many gems here
DEPENDENCIES
  ...
  mysql2
  ...
Run Code Online (Sandbox Code Playgroud)

这是该mysql2.rb文件中的内容:

# C:\Ruby200\lib\ruby\gems\2.0.0\gems\mysql2-0.3.11-x86-mingw32\lib\mysql2\mysql2.rb

RUBY_VERSION =~ /(\d+.\d+)/
require "mysql2/#{$1}/mysql2"  # <<-- this is that #2 line that throws an error
Run Code Online (Sandbox Code Playgroud)

很明显,它采用当前的Ruby版本号并将其用作路径段来访问某个mysql2文件.实际上它是mysql2.so文件.当我使用Ruby 2.0.0时,路径段是2.0:

mysql2/2.0/mysql2 …
Run Code Online (Sandbox Code Playgroud)

mysql2 ruby-on-rails-3 ruby-2.0

11
推荐指数
2
解决办法
1万
查看次数

更新到Ubuntu 16.04后,mysql2 gem无法正常工作 - libmysqlclient.so.18

在更新之前一切正常.使用带有RVM的ruby 1.9.3p392和rails(3.2.12)使用MySQL 5.7.16和Nginx和Unicorn

日志显示

LoadError: libmysqlclient.so.18: cannot open shared object file: No such file or directory - /home/bill/apps/xxx/shared/bundle/ruby/1.9.1/gems/mysql2-0.3.16/lib/mysql2/mysql2.so
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 卸载/安装mysql2 gem
  2. 运行 bundle install

没有任何效果.更新后有人遇到过这个问题吗?

ruby ruby-on-rails unicorn mysql2

11
推荐指数
1
解决办法
4170
查看次数

在80端口启动webrick(mysql2 gem issue)

我试图让我的webrick服务在80端口.我试过:

rails server -p 80
Run Code Online (Sandbox Code Playgroud)

但获得拒绝访问权限.我后来才知道使用端口1-1024需要root权限,所以我尝试了这个

sudo rails server -p 80
Run Code Online (Sandbox Code Playgroud)

但是,这次我得到一个mysql2错误.不知道这里发生了什么.我试着跑:

rails server -p 1025
Run Code Online (Sandbox Code Playgroud)

并且它工作正常,我认为它是关于root和mysql2的东西.有人可以帮忙吗?

以下是控制台中的错误消息:

/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle:dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2. bundle,9):库未加载:libmysqlclient.18.dylib(LoadError)引用自:/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle原因:未找到图像 - 来自/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2.rb:8的/Library/Ruby/Gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:in require' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:inrequire'from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/ bundler/runtime.rb:66:在each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:inrequire'from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in require'from each' from /Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in/ Library/Ruby/Gems/1.8/gems/bundler-1.0.12/lib/bundler.rb:120:in require'from require' from /Users/ccool2486/Sites/fs2_test/config/application.rb:7 from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:28:in/Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:28 from/Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27:in require'from tap' from /Library/Ruby/Gems/1.8/gems/railties-3.0.6/lib/rails/commands.rb:27 from script/rails:6:inscript/rails:6

permissions gem webrick mysql2 ruby-on-rails-3

10
推荐指数
1
解决办法
8480
查看次数

Rails error installing mysql2 (mysql2-0.3.20)

I am trying to get a rails project up and running on my local machine. When I do bundle install

Fetching mysql2 0.3.20
Installing mysql2 0.3.20 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/mac/.rvm/gems/ruby-2.3.1/gems/mysql2-

0.3.20/ext/mysql2
/Users/mac/.rvm/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20180707-33936-1toblx7.rb extconf.rb
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 mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... …
Run Code Online (Sandbox Code Playgroud)

mysql rubygems ruby-on-rails mysql2

10
推荐指数
4
解决办法
7438
查看次数

rake db:使用mysql2 gem迁移错误 - 未加载库:libssl.1.0.0.dylib

运行rake db:migrate后出现以下错误

rake aborted!
LoadError: dlopen(/Users/scott/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.bundle, 9): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/scott/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/scott/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/mysql2-0.4.10/lib/mysql2/mysql2.bundle
/Users/scott/Google Drive/playground/myApp/myApp/config/application.rb:21:in `<top (required)>'
/Users/scott/Google Drive/playground/myApp/myApp/Rakefile:4:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

libssl是指什么?

ruby rake rubygems ruby-on-rails mysql2

9
推荐指数
3
解决办法
2412
查看次数

如何在 Node 中使用 Mysql2 使用 async 和 pool 获取 MySQL 的 insertId?

我正在尝试将 async wait 与 mysql2 和池一起使用,但我认为我做错了。下面是我的代码(正如我所说,我不确定我是否在这里做事)。

    const pool = mysql.createPool({
      host: 'localhost',
      user: 'root',
      database: 'test',
      password: '',
      waitForConnections: true,
      connectionLimit: 10,
      queueLimit: 0
    });
    
    const promisePool = pool.promise();   // Get a Promise wrapped instance of that pool   
    

app.post('/api/register', (req, res) => {

    async function queryDB() {
    
        try {
          const addUser = await promisePool.execute(
            "INSERT INTO users (company, email, password) VALUES (?,?,?)",
            ['Ikea', 'Ikea@ikea.com', '123'],
          )
          const addAnother = await promisePool.execute(
            "INSERT INTO users (company, email, password) VALUES (?,?,?)",
            ['Google', …
Run Code Online (Sandbox Code Playgroud)

mysql connection-pooling node.js mysql2 async-await

9
推荐指数
2
解决办法
1万
查看次数

Ruby Gem - LoadError

Ruby新手在这里试图弄清楚如何使用宝石,到目前为止,体验并不是那么好.

通过gem安装mysql2之后我尝试在一个简单的文件中使用它.

require 'mysql2'

#client = Mysql2::Client.new(:host => "localhost", :username => "username")

虽然当我运行这个时,我得到:


Parse.rb:1:in `require': no such file to load -- mysql2 (LoadError)
 from Parse.rb:1

然而我的宝石列表包含mysql2:

Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner$ gem list

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.1, 2.3.5, 1.3.6)
actionpack (3.0.1, 2.3.5, 1.13.6)
actionwebservice (1.2.6)
activemodel (3.0.1)
activerecord (3.0.1, 2.3.5, 1.15.6)
activeresource (3.0.1, 2.3.5)
activesupport (3.0.1, 2.3.5, 1.4.4)
acts_as_ferret (0.4.3)
arel (2.0.2)
builder (2.1.2)
capistrano (2.5.19, 2.5.2)
cgi_multipart_eof_fix (2.5.0)
daemons (1.1.0, 1.0.10)
dnssd (1.4, 0.6.0)
erubis (2.6.6)
fastthread (1.0.7, …

ruby gem mysql2

8
推荐指数
2
解决办法
2万
查看次数

尝试rake db:migrate时,未在rails项目中选择数据库

使用rails应用程序,有一些奇怪的数据库/ rake问题.

当我执行:

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Mysql2::Error: No database selected: SHOW TABLES

(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

跟踪并未显示有用的信息.可以在这里看到:http://pastebin.com/WdsguudC

配置文件看起来正确,用户正在登录,或者我会遇到某种访问错误.数据库存在,用户具有正确的权限,我可以手动访问和操作它.我做了一堆谷歌搜索,并没有发现任何有用的东西.不确定是否还有其他需要提供的代码,因为这似乎是一个相当低级别的问题.

migration rake ruby-on-rails mysql2 ruby-on-rails-3

8
推荐指数
2
解决办法
8181
查看次数

无法安装旧的mysql2 gem

我正在使用Mac High Sierra.我正在使用带有RVM的Ruby 2.2.1.我需要在这个Ruby on Rails应用程序中使用mysql2.我确实安装了mysql 5.7.我确实安装了xcode和命令行工具.

我只是想让这个公司应用程序在我的本地机器上工作.我知道我非常接近但是当我进行捆绑安装时我有一个最后的错误当我到达mysql2 gem时收到以下错误:

Fetching mysql2 0.3.18
Installing mysql2 0.3.18 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/ahayden/.rvm/gems/ruby-2.2.1/gems/mysql2-0.3.18/ext/mysql2
/Users/ahayden/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20180710-52515-2hjll8.rb extconf.rb
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 mysql_config at /usr/local/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for mysqld_error.h... yes
-----
Don't know …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails mysql2

8
推荐指数
2
解决办法
3699
查看次数

Ruby脚本使用没有Rails的database.yml连接到Mysql2

我想在Ruby脚本中使用mysql2 gem连接到mysql数据库,但是没有Rails或ActiveRecord,但是读取config/database.yml文件是为了不直接在Ruby脚本中公开用户名和密码.如果我像这样使用ActiveRecord,我可以连接:

dbconfig = YAML::load(File.open('config/database.yml'))
ActiveRecord::Base.establish_connection( dbconfig['production'] )
Run Code Online (Sandbox Code Playgroud)

但是,如果我为Mysql2连接尝试相同的技巧,我会收到一个错误:

client = Mysql2::Client.new(dbconfig['production'])
Run Code Online (Sandbox Code Playgroud)

显然语法不同,我需要这样的东西:

client = Mysql2::Client.new(:host => "localhost", :username => "user", :password => 'password', :database => 'db', :socket => '/tmp/mysql.sock')
Run Code Online (Sandbox Code Playgroud)

但是不想直接在脚本中公开用户名和密码.

那我怎么能从config/database.yml中获取所有数据并将其传递给Mysql2::Client.new()方法呢?

谢谢.

编辑

只是想澄清一下,为了最终使它工作我通过这样做修改了一下有关的答案:

client = Mysql2::Client.new(:host => dbconfig['hostname'], :username => dbconfig['username'], :password => dbconfig['password'], :database => dbconfig['database'], :socket => '/tmp/mysql.sock')
Run Code Online (Sandbox Code Playgroud)

简单地做Mysql2::Client.new(config)就行不通,因为它不会拿起用户名和密码.

ruby yaml mysql2

7
推荐指数
1
解决办法
5260
查看次数