我正在制作一个类似于“Twitter”的网络应用程序。
当我运行服务器时,
'用户与用户关联多次。要识别正确的关联,您必须使用“as”关键字来指定要包含的关联的别名。<- 出现此消息。
我将“as”关键字应用于“关注者”和“关注者”之间的关系。但错误消息不断出现。
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/config.json')[env];
const db = {};
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}) …Run Code Online (Sandbox Code Playgroud) 我正在使用 nodejs + mysql2 的项目中工作,有时我收到错误Too muchconnections。
我的连接:
import {createPool, Pool} from 'mysql2/promise';
export async function connect(): Promise < any > {
const connection: Pool = await createPool({
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'mendozarq',
connectionLimit: 10
});
return connection;
}
Run Code Online (Sandbox Code Playgroud)
控制器:
import { Response, Request } from 'express';
import { FieldPacket, Pool } from 'mysql2/promise';
import { connect } from './../../classes/database';
import { Personal } from './../../models/personal.interface';
export const getAllPersonal = async (req: Request, res: …Run Code Online (Sandbox Code Playgroud) 我正在尝试在10.6服务器上安装mysql2 gem,我收到一条错误消息,我没有看到:
EBuilding native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... no
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options. …Run Code Online (Sandbox Code Playgroud) 我想更改Mysql2 :: Client正在使用的数据库(例如,在mysql命令行中键入"use X"),而不必建立与DB服务器的新连接.
这可能吗?怎么样?
对于我的Heroku应用程序(Rails 3.1.4和Ruby 1.9.2),我正在尝试更改为使用MySQL2的数据库,但是我收到来自Heroku的错误(这会导致我的应用程序崩溃):
3.1.4/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the mysql12 adapter: `gem install activerecord-mysql12-adapter` (no such file to load -- active_record/connection_adapters/mysql12_adapter) (RuntimeError) EXCEPT
Run Code Online (Sandbox Code Playgroud)
在我的gemfile中,我有:
group :production do
gem "mysql2", "~> 0.3.11"
end
group :development, :test do
gem 'mysql', '2.8.1'
end
Run Code Online (Sandbox Code Playgroud)
在我的database.yml中,我有:
development:
adapter: mysql
production:
adapter: mysql2
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的失败(所有尝试都在本地和Heroku中正确安装):
根据这个答案,我试过(在我的gemfile中),mysql2版本"<0.3"
对于那个问题的另一个答案,我尝试了'<0.3.7'但没有用
我按照这个答案尝试了宝石"mysql2","〜> 0.3.11" ,但它没有用
根据gem的网站,我尝试(在我的gemfile中),mysql2版本"〜> 0.2.7"并安装了mysql2 0.2.18(在本地成功并在Heroku中)
我有一个问题,我正在更新我的数据库中的数百万行,所以我不想单独更新每一行,而是想将〜1000个语句组合并到一个查询中.
我已经启用了MULTI_STATEMENTS
client = Mysql2::Client.new(:host => 'localhost', :database => 'mehdb', :username => "root", :password => "", :flags => Mysql2::Client::MULTI_STATEMENTS)
Run Code Online (Sandbox Code Playgroud)
这是我正在运行的代码的示例
sql = "SELECT id, x FROM pew WHERE x IS NULL LIMIT 1000"
results = db_read.query(sql)
while results.count > 0
updates = ''
results.each do |r|
updates += "UPDATE pew SET x = 10 WHERE id = #{r['id']};"
end
db_write.query(updates) unless updates.empty?
results = db_read.query(sql)
end
Run Code Online (Sandbox Code Playgroud)
这项工作在第一次运行期间没问题,但是当它触发第二组更新时,我收到此错误消息
`query': Commands out of sync; you can't run this command now (Mysql2::Error)
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过这个?或者对另一种方法的任何建议?
我在这里使用Ruby的mysql2 gem:https: //github.com/brianmario/mysql2
我有以下代码:
client = Mysql2::Client.new(
:host => dbhost,
:port => dbport, :database => dbname,
:username => dbuser,
:password => dbpass)
sql = "SELECT column1, column2, column3 FROM table WHERE id=#{id}"
res = client.query(sql, :as => :array)
p res # prints #<Mysql2::Result:0x007fa8e514b7d0>
Run Code Online (Sandbox Code Playgroud)
是否有可能上面的.query调用返回哈希数组,数组中的每个hesh res都是格式column => value.我可以手动执行此操作但是从文档中我留下的印象是我可以以上述格式将结果直接加载到内存中.我需要这个,因为之后我必须在json中对结果进行编码,所以我一个接一个地获取行没有任何好处.此外,数据量总是非常小.
我正在开始一个新的rails 3应用程序,当我运行rake db:create它请求我的root mysql密码然后错误说:
Mysql2 ::错误:用户'arcsite_mysql'@'localhost'拒绝访问数据库'arcsite_mysql_test':CREATE DATABASE
arcsite_mysql_testDEFAULT CHARACTER SETutf8COLLATEutf8_unicode_ci
如果我在命令行登录mysql并运行show databases;我看到:
arcsite_mysql_development
Run Code Online (Sandbox Code Playgroud)
如果我跑,SHOW GRANTS FOR arcsite_mysql@localhost我看到这个:
GRANT ALL PRIVILEGES ON `arcsite_mysql_development`.* TO 'arcsite_mysql'@'localhost' WITH GRANT OPTION
Run Code Online (Sandbox Code Playgroud)
我的database.yml:
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MYSQL driver
# gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
# gem 'mysql2'
#
# And be sure to use new-style password hashing: …Run Code Online (Sandbox Code Playgroud) 我之前在OS X上安装的MySQL是使用本机软件包安装程序手动完成的.
有人帮我解决了升级某些宝石的问题,并且在过程中他们从自制软件工具中安装了mysql.
从那时起,我无法从MySQLWorkbench或我的各种rails应用程序访问我的任何本地数据库,但是使用相同的凭据在CLI上使用mysql登录允许我正常地读取和写入所有表.
我尝试加载页面时从rails收到的错误是:
Mysql2::Error: Can't read dir of './r4/' (errno: 13): SHOW TABLES LIKE 'schema_migrations'
关于我能做些什么来解决这个问题的任何想法?
我正在使用Rails和mysql2宝石。有没有一种方法可以通过运行命令来获取mysqld服务器版本:
$ mysqld --version
mysqld Ver 5.5.29 for osx10.8 on i386 (Source distribution)
Run Code Online (Sandbox Code Playgroud)
我不希望执行shell命令,因为数据库服务器可能正在另一台服务器上运行。
mysql2 ×10
mysql ×8
ruby ×5
node.js ×2
express ×1
heroku ×1
homebrew ×1
macos ×1
node-mysql2 ×1
rake ×1
rubygems ×1
sequelize.js ×1
typescript ×1