我最近在我的机器上升级了mysql.结果我试图相应地更新我的mysql2 gem.在这样做的过程中,我运行"bundle install",由于某些原因,我的Gemfile中的所有gem都安装在./mysql2目录中?
ruby-1.9.2-p180 [dev]:project.git$ bundle install
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/shared_helpers.rb:3.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem::SourceIndex#each is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#each called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162.
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /Users/al/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.10/lib/bundler/source.rb:162. …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Capistrano在我的生产服务器上安装'mysql2'gem.
我想在开发中使用SQLite,在生产中使用MySQL.
我在Windows 7机器上开发,生产使用Ubuntu.
当我bundle install在我的开发机器上运行时,它会安装MySQL2.
当Capistrano在我的生产机器上运行时,它甚至在输出中都没有提到.
当我直接在shell上的生产机器上运行相同的命令时,它也没有提到gem.
我也发现gem 'therubyracer', :platforms => :ruby没有安装.我在mysql2条目之后添加了这个.我希望这两者是相关的.在添加therubyracer之前,mysql2无法正常工作.
由于以上所有原因,我在尝试查看我的网站时收到以下错误:
请安装mysql2适配器:(
gem install activerecord-mysql2-adaptermysql2不是捆绑包的一部分.将其添加到Gemfile.)
我希望下面包含的信息量比痛苦更有用.
我很欣赏我可以将mysql2放在'生产'中,但这不起作用.
source 'http://rubygems.org'
gem 'rails', '3.1.1'
gem 'nokogiri'
gem 'bcrypt-ruby'
gem 'faker'
gem 'will_paginate'
gem 'capistrano'
gem 'capistrano-ext'
gem 'mysql2', "~> 0.3"
gem 'therubyracer', :platforms => :ruby
gem 'sqlite3'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.1.4'
gem 'coffee-rails', '~> …Run Code Online (Sandbox Code Playgroud) 让活动记录在开发环境中的所有查询中使用 SQL_NO_CACHE 的简单方法是什么?
我想针对最坏情况的加载时间优化语句。希望这样做是有意义的,但是我在第一页点击时得到的查询非常慢,而下一次所有查询都非常快,因为服务器应该缓存它们。
我正在使用 mysql2 gem 0.3.11 和 Rails 3.2.3。
我在 Windows 8.1 机器上安装 mysql2 gem 时遇到了一些问题。我按照这篇文章中的说明进行操作:
安装mysql2gem,我没有收到任何错误消息。
我跟着这个
bundle install
Run Code Online (Sandbox Code Playgroud)
命令,并确认安装了以下 gems(使用 bundle show),确认我安装了以下 gems:
Using devise (3.2.2)
Using mysql2 (0.3.14)
Run Code Online (Sandbox Code Playgroud)
然后我尝试这样做:
rails generate devise:install
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `require': 126: The specified module could not be found.
- C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2/mysql2.so (LoadError)
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/mysql2-0.3.14/lib/mysql2.rb:8:in `<top (required)>'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:72:in `block in require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `each'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler/runtime.rb:61:in `require'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/bundler-1.5.1/lib/bundler.rb:131:in `require' …Run Code Online (Sandbox Code Playgroud) 我成功地在Ubuntu上安装了Ruby on Rails 4.2并使用MySQL作为我的数据库,但是当我想看到我在浏览器上使用localhost创建的新应用程序时:3000
我收到此错误消息:
Mysql2::Error
Access denied for user 'root'@'localhost' (using password: NO)
Extracted source (around line #70):
socket = socket.to_s unless socket.nil?
70 connect user, pass, host, port, database, socket, flags
end
def self.default_query_options
Run Code Online (Sandbox Code Playgroud)
有帮助吗?
我一遍又一遍地阅读(否则)优秀的 Mysql2 gem 的文档。
我在以 UTC 运行的服务器上托管了一个生产 Rails 应用程序。应用程序的 config.time_zone 设置为“东部时间(美国和加拿大)”。
我们有一个内部 MS Access 为头的应用程序(幸运的是,它使用了 MySQL 数据库),上述 Rails 应用程序连接到该应用程序以同步产品数据、生产计划等。由于应用程序的限制,该 MySQL 服务器无法移入云中,而且——不用说——我们不能将其时区处理更改为 UTC——一切都在 EST 中。
当我从 Rails 应用程序连接到本地数据库以检索数据时,Mysql2(默认情况下)将所有本机数据转换为可消化的 Ruby 对象。但是,我可以让 Rails 应用程序正确解释日期的唯一方法是在 Mysql2 查询命令期间发送 :cast => false,然后在响应处理中对结果运行 Time.zone.parse( string ) . 这需要原生 Ruby 对象转换,这远不如 gem 内置的转换函数那么高效。
我尝试传递文档中提到的 database_timezone 和 application_timezone 选项,但 :local 符号没有使用应用程序的 config.time_zone 属性的预期效果。
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true).each { |result| p result[:n] }
2015-05-19 16:28:41 +0000
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true, :database_timezone => …Run Code Online (Sandbox Code Playgroud) mysql我目前正在尝试使用 Node.Js或NPM 依赖项连接到互联网上的 MySQL 服务器,mysql2以使用查询和其他相关内容。
代码很简单...
//i import my dependency
const mysql = require('mysql2') //either 'mysql' or 'mysql2'
//i create my pool to create connections as needed
var conn = mysql.createPool({
host: 'some_database_i_have_access_to.mysql.uhserver.com',
user: 'valid_user',
password: 'valid_password',
database: 'some_existing_database'
})
//i try to connect (this is the part where it fails)
conn.getConnection((err,conn) => {
if (err) throw err //<- the error is thrown here
//i do query stuff
conn.query("SELECT * FROM atable",(err,res,firlds) => {
if(err) throw err …Run Code Online (Sandbox Code Playgroud) 在安装 mysql2 v 0.4.2 时遇到困难但成功使用
gem install mysql2 -v '0.4.2' -- --srcdir=/usr/local/mysql/include
Run Code Online (Sandbox Code Playgroud)
我现在在运行时遇到以下错误bundle exec rails s
`require': cannot load such file -- mysql2/mysql2 (LoadError)
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/mysql2-0.4.2/lib/mysql2.rb:31:in `<top (required)>'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:82:in `require'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:82:in `block (2 levels) in require'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:77:in `each'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:77:in `block in require'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:66:in `each'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler/runtime.rb:66:in `require'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/bundler-1.15.4/lib/bundler.rb:108:in `require'
from /Users/jmayer/workspace/sekai-property/config/application.rb:8:in `<top (required)>'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:78:in `require'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:78:in `block in server'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `tap'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:75:in `server'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/jmayer/.rvm/gems/ruby-2.3.1/gems/railties-4.2.5/lib/rails/commands.rb:17:in `<top …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Docker 的 Rails 应用程序中将我的 ruby 版本从 2.4.5 升级到 2.4.9。
重建我的容器后,它因错误而停止:
uninitialized constant Mysql2::Client::LONG_PASSWORD (NameError)
Run Code Online (Sandbox Code Playgroud)
我的 mysql2 gem 版本被锁定:
gem 'mysql2', '0.3.21'
Run Code Online (Sandbox Code Playgroud)
我尝试将mysql2gem升级到 0.4.0 版本,但最终出现了另一个错误。
关于升级事物以使其正常工作的任何建议?
我正在使用mysql2进行简单的更新:
UPDATE table1
SET table1.value1 = ?, table1.value2 = ?
WHERE user_id = (
SELECT user_id
FROM user
WHERE company_id = ?
)
Run Code Online (Sandbox Code Playgroud)
table1 与用户表 by 相关user_id,但我只有,company_id所以我做了一个子查询(可能应该是一个连接,但那是另一个讨论):
const [results, buff] = await connection.execute(query, values);
return results
Run Code Online (Sandbox Code Playgroud)
但是,当访问结果以确保没有错误并且仅更新一行时,results将返回:
console.log
ResultSetHeader {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
info: 'Rows matched: 1 Changed: 0 Warnings: 0',
serverStatus: 2,
warningStatus: 0,
changedRows: 0
}
Run Code Online (Sandbox Code Playgroud)
但我无法访问这些值。如果我尝试results.affectedRows我得到
Property 'affectedRows' does not exist on type 'RowDataPacket[] | …Run Code Online (Sandbox Code Playgroud) mysql2 ×10
mysql ×3
bundler ×2
node.js ×2
activerecord ×1
capistrano ×1
datetime ×1
javascript ×1
ruby ×1
rubygems ×1
timezone ×1
typescript ×1