`mysql2` gem- 如何 运行 基准文件?
`mysql2` gem- how to run benchmark files?
OSx v12.4
Ruby v2.6.0
XCode v13.4.1
`mysql2` gem, SHA e9c662912dc3bd3707e6c7f0c75e591294cffe12
我克隆了 mysql2
存储库,我正在尝试从根目录 运行 ruby benchmark/active_record.rb
。我收到以下错误:
/Users/richiethomas/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/activesupport-
6.1.6/lib/active_support/dependencies.rb:332:in `require': Could not load the 'mysql'
Active Record adapter. Ensure that the adapter is spelled correctly in
config/database.yml and that you've added the necessary adapter gem to your Gemfile.
(LoadError)
我在回购的 Gemfile
中看到以下内容:
group :benchmarks, optional: true do
gem 'activerecord', '>= 3.0'
gem 'benchmark-ips'
gem 'do_mysql'
gem 'faker'
# The installation of the mysql latest version 2.9.1 fails on Ruby >= 2.4.
gem 'mysql' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4')
gem 'sequel'
end
我尝试了 运行ning bundle install --with=benchmarks
,并成功完成,但是它没有安装 mysql
ActiveRecord 适配器,因为我的 Ruby 版本是 2.6.0 .
虽然我知道这不是必需的,但我尝试按照 the gem's README.md
file:
通过以下命令安装 mysql
gem
gem install mysql2 -- --with-mysql-dir=-/usr/local/opt/mysql@5.7
然而,我得到:
library not found for -lssl
clang: error: linker command failed with exit code 1
我还尝试按照 :
使用以下命令安装 mysql
gem install mysql -- --with-ldflags=-L/usr/local/opt/openssl/lib
但是,我收到与 rb_cFixnum
相关的错误,我推测这是因为 Fixnum
class 在我的 Ruby 版本中不存在(似乎2.4.0 已经被淘汰了,我现在是 2.6.0)。在这两个错误之间,我觉得我可以排除错误是由缺少 mysql
gem.
引起的可能性
如果根本问题是链接器文件过时,我已将 OS 和 XCode 更新为截至今天可用的最新版本。以上错误发生在我完成这个更新过程后。
我的问题有两个:
我注意到错误消息引用了 config/database.yml
,我习惯在我的 Rails 项目中看到它,但我在 mysql2
回购。这是否意味着如果有关联的 database.yml
文件,我只能 运行 基准?如果是这样,我将如何 运行 来自(例如)“Hello World”类型 Rails 项目的这些基准?
如果我无法将 mysql
gem 与高于 2.4.0 的 Ruby 版本一起安装,为什么 benchmarks/active_record.rb
文件似乎依赖于它在 this line of code 中的存在?无论我的 Ruby 版本如何,我都希望能够 运行 基准文件。
我认为您不应该假设基准测试可以 运行 而不对基准代码进行一些手动编辑和更正。例如,文件 setup_db.rb
包含您显然需要编辑的硬编码凭据。
另请注意,您必须先 运行 安装文件,然后再 运行 任何其他内容。例如,active_record.rb
文件似乎正在使用 mysql2_test
table 中的数据,这些数据是通过 setup_db.rb
.
创建的
您对 database.yml
的引用只是来自 Rails 代码库的标准错误消息。这并不意味着您需要此文件进行测试。事实上,您很可能需要编辑 active_record.rb
文件中的 opts
行,以指向可以连接到与您在 setup_rb.rb
中初始化的内容兼容的数据库。
另外我会跳过 mysql
gem 并尝试使用 mysql2
运行 如果您已经安装了它。为此,您必须从测试代码中删除对 mysql
的任何引用。
如果您在 Rubygem 上查看 mysql
gem,the latest version is from 2013。在任何现代 Ruby 版本上,您都不太可能获得 运行。这也暗示了基准代码最有可能过时的程度。
通过查看基准文件夹中文件的 git 历史记录,可以看到 out-of-date 的更多提示。它们自 2017 年以来就没有更新过。
总结:
您必须编辑基准代码才能使其正常工作。代码
看起来不像是在普遍的火灾中建立起来的,忘记了
方式,很可能已经过时了。
不要安装 mysql,而是安装 mysql2。对于相关问题
mysql2个安装问题,最好post出新问题。
OSx v12.4
Ruby v2.6.0
XCode v13.4.1
`mysql2` gem, SHA e9c662912dc3bd3707e6c7f0c75e591294cffe12
我克隆了 mysql2
存储库,我正在尝试从根目录 运行 ruby benchmark/active_record.rb
。我收到以下错误:
/Users/richiethomas/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/activesupport-
6.1.6/lib/active_support/dependencies.rb:332:in `require': Could not load the 'mysql'
Active Record adapter. Ensure that the adapter is spelled correctly in
config/database.yml and that you've added the necessary adapter gem to your Gemfile.
(LoadError)
我在回购的 Gemfile
中看到以下内容:
group :benchmarks, optional: true do
gem 'activerecord', '>= 3.0'
gem 'benchmark-ips'
gem 'do_mysql'
gem 'faker'
# The installation of the mysql latest version 2.9.1 fails on Ruby >= 2.4.
gem 'mysql' if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.4')
gem 'sequel'
end
我尝试了 运行ning bundle install --with=benchmarks
,并成功完成,但是它没有安装 mysql
ActiveRecord 适配器,因为我的 Ruby 版本是 2.6.0 .
虽然我知道这不是必需的,但我尝试按照 the gem's README.md
file:
mysql
gem
gem install mysql2 -- --with-mysql-dir=-/usr/local/opt/mysql@5.7
然而,我得到:
library not found for -lssl
clang: error: linker command failed with exit code 1
我还尝试按照
mysql
gem install mysql -- --with-ldflags=-L/usr/local/opt/openssl/lib
但是,我收到与 rb_cFixnum
相关的错误,我推测这是因为 Fixnum
class 在我的 Ruby 版本中不存在(似乎2.4.0 已经被淘汰了,我现在是 2.6.0)。在这两个错误之间,我觉得我可以排除错误是由缺少 mysql
gem.
如果根本问题是链接器文件过时,我已将 OS 和 XCode 更新为截至今天可用的最新版本。以上错误发生在我完成这个更新过程后。
我的问题有两个:
我注意到错误消息引用了
config/database.yml
,我习惯在我的 Rails 项目中看到它,但我在mysql2
回购。这是否意味着如果有关联的database.yml
文件,我只能 运行 基准?如果是这样,我将如何 运行 来自(例如)“Hello World”类型 Rails 项目的这些基准?如果我无法将
mysql
gem 与高于 2.4.0 的 Ruby 版本一起安装,为什么benchmarks/active_record.rb
文件似乎依赖于它在 this line of code 中的存在?无论我的 Ruby 版本如何,我都希望能够 运行 基准文件。
我认为您不应该假设基准测试可以 运行 而不对基准代码进行一些手动编辑和更正。例如,文件 setup_db.rb
包含您显然需要编辑的硬编码凭据。
另请注意,您必须先 运行 安装文件,然后再 运行 任何其他内容。例如,active_record.rb
文件似乎正在使用 mysql2_test
table 中的数据,这些数据是通过 setup_db.rb
.
您对 database.yml
的引用只是来自 Rails 代码库的标准错误消息。这并不意味着您需要此文件进行测试。事实上,您很可能需要编辑 active_record.rb
文件中的 opts
行,以指向可以连接到与您在 setup_rb.rb
中初始化的内容兼容的数据库。
另外我会跳过 mysql
gem 并尝试使用 mysql2
运行 如果您已经安装了它。为此,您必须从测试代码中删除对 mysql
的任何引用。
如果您在 Rubygem 上查看 mysql
gem,the latest version is from 2013。在任何现代 Ruby 版本上,您都不太可能获得 运行。这也暗示了基准代码最有可能过时的程度。
通过查看基准文件夹中文件的 git 历史记录,可以看到 out-of-date 的更多提示。它们自 2017 年以来就没有更新过。
总结:
您必须编辑基准代码才能使其正常工作。代码 看起来不像是在普遍的火灾中建立起来的,忘记了 方式,很可能已经过时了。
不要安装 mysql,而是安装 mysql2。对于相关问题 mysql2个安装问题,最好post出新问题。