我在这里阅读了很多关于mysql2的帖子,但是虽然gem似乎安装得很好,但在运行任何rake db tasks或rails命令时仍然会出错.在我的Gemfile中:
source 'http://rubygems.org'
gem 'rails', '3.0.7'
gem 'mysql2'
Run Code Online (Sandbox Code Playgroud)
在我的远程服务器上运行以下内容:
$ bundle install
...
Using mysql2 (0.2.7)
...
Using rails (3.0.7)
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
$ rake db:schema:load
(in ...)
rake aborted!
Please install the myslq2 adapter: `gem install activerecord-myslq2-adapter` (no such file to load -- active_record/connection_adapters/myslq2_adapter)
$ gem install activerecord-myslq2-adapter
ERROR: Could not find a valid gem 'activerecord-myslq2-adapter' (>= 0) in any repository
$ gem …Run Code Online (Sandbox Code Playgroud) 我在Ruby中使用MySQL2来查询数据库.检查查询结果是否为空的直接方法是什么?代码如下:
require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")
Run Code Online (Sandbox Code Playgroud) 我有这个帖子请求
app.post("/msg", (req, res) => {
console.log(req.body)
connection.query('INSERT INTO plans (topic, notes, resources) VALUES
(?)', [req.body.topic, req.body.note, req.body.resource],(error,
results) => {
if (error) return res.json({ error: error });
});
});
Run Code Online (Sandbox Code Playgroud)
我从中得到这个错误
"error": {
"code": "ER_WRONG_VALUE_COUNT_ON_ROW",
"errno": 1136,
"sqlState": "21S01",
"sqlMessage": "Column count doesn't match value count at row 1"
}
Run Code Online (Sandbox Code Playgroud)
这是桌子
CREATE TABLE plans(
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
topic VARCHAR(64) NOT NULL,
notes VARCHAR(200) NOT NULL,
resources VARCHAR(200) NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
请问这个请求有什么问题吗?
我正在尝试使用mysql2连接到RDS MySQL实例.当我在本地使用包时,一切正常.但是,当我在AWS Lambda函数中使用它时,我得到了这个神秘的错误:
TypeError: f.ClientHandshake is not a constructor
at new g (/var/task/index.js:275:62824)
at new o (/var/task/index.js:275:224046)
at e.exports.getConnection (/var/task/index.js:275:218705)
at e.exports.execute (/var/task/index.js:275:220197)
at /var/task/index.js:275:372341
at new Promise (<anonymous>)
at c.execute (/var/task/index.js:275:372308)
at /var/task/index.js:357:14189
at E (/var/task/index.js:316:24416)
at Generator._invoke (/var/task/index.js:316:24204)
Run Code Online (Sandbox Code Playgroud)
知道问题是什么吗?我确信角色/安全组都已正确配置.
我正在追查 mysql 应用程序的问题。在某些时候,我的客户端使用包含在语句中的查询插入一些数据START TRANSACTION; .... COMMIT;。之后另一个客户端来读回数据,但它不在那里(我确信事情的顺序)。
我正在运行nodejs、express、mysql2,并使用连接池,进行多语句查询。
有趣的是我在 mysqlworkbench 上看到了奇怪的东西。我只有一个工作台实例,它也看不到新插入的数据。我打开第二个,它看到了新数据。几分钟后,第一个实例仍然看不到新数据。点击“重新连接到 DBMS”,现在它就可以看到它了。如果将工作台行为应用于我的节点客户端,则可以解释我在节点/mysql2 中看到的错误结果。
某处正在进行某种缓存...不知道从哪里开始:-( 有任何指示吗?谢谢!
我将 Rails 项目从 5 升级到 6,现在 Rails 命令在我的 M2 mac 上抛出此错误:
dyld[...]: missing symbol called
Run Code Online (Sandbox Code Playgroud)
它看起来像是 Node 和 mysql gem 的某种问题。当我使用 SQLite 创建新项目时,一切运行正常:
% rbenv versions
* 3.1.2
% rails -v
Rails 6.1.7.3
% rails new test
% rails s
Run Code Online (Sandbox Code Playgroud)
但是当我对 mysql db 执行相同操作时,安装在 webpacker install 上结束:
% rails new test2 -d mysql
...
Bundle complete! 17 Gemfile dependencies, 81 gems now installed.
run bundle binstubs bundler
rails webpacker:install
dyld[25919]: missing symbol called
Run Code Online (Sandbox Code Playgroud)
我有最新的 mysql2 gem 版本:
gem "mysql2", '~> …Run Code Online (Sandbox Code Playgroud) 我一直无法让mysql2适配器使用最新版本的rails.我刚刚创建了一个新项目.在我的gemfile中添加了以下内容:
gem 'mysql2', '< 0.3.7'
Run Code Online (Sandbox Code Playgroud)
当然跑了:
bundle install
Run Code Online (Sandbox Code Playgroud)
我还修改了我的database.yml文件:
development:
adapter: mysql2
encoding: utf8
database: blog_development
username: root
password: *********
socket: /tmp/mysql.sock
test:
adapter: mysql2
encoding: utf8
database: blog_test
username: root
password: ********
socket: /tmp/mysql.sock
production:
adapter: mysql2
encoding: utf8
database: blog_production
username: root
password: *********
socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
所以当我尝试运行rake db:create时,以下是输出.
$ rake db:create --trace
** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Invoke rails_env (first_time)
** Execute rails_env
** Execute db:load_config
** Execute db:create
rake aborted!
Please install the …Run Code Online (Sandbox Code Playgroud) 如何在MySQL中创建预备语句insert和select查询?我正在使用MySQL2 gem,我的连接对象如下所示:
con = Mysql2::Client.new(:host => "#{ENV['DB_HOST']}", :port => '3306', :username => "#{ENV['DB_UNAME']}", :password => "#{ENV['DB_PWD']}", :database => 'dbname')
Run Code Online (Sandbox Code Playgroud) 我在my.cnf中设置了wait_timeout并重新启动了服务器,但空闲连接的时间继续大于我设置的默认值100s.任何想法为什么会这样?
PS:我正在运行ubuntu 12.04和Mysql Server 5.5.使用Rails 3和mysql2 gem.
mysql> SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY TIME DESC LIMIT 20;
+------+------------------+-------------------------------------+--------------------------+---------+------+-------+------+
| ID | USER | HOST | DB | COMMAND | TIME | STATE | INFO |
+------+------------------+-------------------------------------+--------------------------+---------+------+-------+------+
| 760 | user | ip-xxx-xxx-xxx-xxx.ec2.internal:45852 | x | Sleep | 4202 | | NULL |
| 912 | user | ip-xxx-xxx-xxx-xxx.ec2.internal:40929 | y | Sleep | 4194 | | NULL |
| 976 | user | ip-xxx-xxx-xxx-xxx.ec2.internal:40970 | y | Sleep | …Run Code Online (Sandbox Code Playgroud) 我是Ruby on Rails的新手.我的Ruby版本是ruby 2.4.1p111(2017-03-22修订版58053)[x64-mingw32].
我使用rails new sample_cms -d mysql命令创建了一个新项目.
该命令rails server抛出以下错误.
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/mysql2-0.4.6-x64-mingw32/lib/mysql2/mysql2.rb:2:in `require': cannot load such file -- mysql2/2.4/mysql2 (LoadError)
Run Code Online (Sandbox Code Playgroud)
我已经安装了mysql和mysql Connector C.我已经安装了mysql2 gem.
gem install mysql2 —platform=ruby?—?‘—with-mysql-dir="C:\Program Files\MySQL\MySQL Connector C 6.1"’
Run Code Online (Sandbox Code Playgroud)
我已经卸载并安装了mysql2 gem,但仍然面临着这个问题.这是可能有问题的目录.
这是mysql2的gem文件条目
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.1.1'
# Use mysql as the database for Active Record
gem 'mysql2', '>= 0.3.18', '< 0.5'
# Use Puma as the app server
gem 'puma', '~> 3.7'
Run Code Online (Sandbox Code Playgroud)
任何帮助?
mysql2 ×10
mysql ×4
node.js ×3
ruby ×3
node-mysql2 ×2
amazon-ec2 ×1
amazon-rds ×1
apple-m1 ×1
aws-lambda ×1
express ×1
javascript ×1
macos ×1
rubygems ×1