Tag: mysql

Rails交易

我正在尝试使用ActiveRecord::Base.transaction 。 我认为使用Rails 1.2.6和mysql 5.0默认情况下回滚不起作用。 更多地玩它我发现在mysql连接中autocommit没有设置为0。 问题: 1)如何禁用所有连接的rails中的自动提交? 2)它是否会对其他不必交易的代码产生负面影响?

需要sql查询帮助来查找具有最多指定标签的内容

假设我有以下表格: TAGS id:整数 name:string post id:整数 主体 引用的Tagging id:整数 tag_id:整数 post_id:整数 我将如何编写一个查询,按照包含最多数量的以下标记的post的顺序选择所有post(标签表的名称属性):“Cheese”,“Wine”,“Paris”,“Frace”,“城市“,”风景“,”艺术“ 另请参阅: 需要有关sql查询的帮助以查找标记有所有指定标记的内容 (注意:类似,但不重复!)

在32位或64位Linux OS服务器上使用Nginx + mysql运行Ruby on Rails + Phusion乘客及其性能?

我有Java背景,并且是Ruby on Rails的新手,并且为我的服务器选择32位或64位Linux操作系统有很多困惑。 这就是我所知道的,如果我错了,请纠正我: 32位操作系统不能使用超过4GB的RAM,但通过它可以实现。 通过这种方式,即使没有单个常规应用程序可以同时访问它,额外的内存也很有用。 所以我计划使用64位Linux OS服务器。 是否有64位Ruby企业版 ? 在64位Linux操作系统中安装32位MySQL 5或64位MySQL 5会更好吗? 我将有32GB的RAM。 在64位操作系统上运行32位应用程序,并在64位操作系统上考虑MySQL 32位,是否有任何物理内存(RAM)限制? 我想知道在64位操作系统上运行32位MySQL的任何陷阱或缺点。 假设我在64位Linux操作系统上安装了32位MySQL 5,它能否有效地利用我的RAM? 我问这个是因为32位应用程序进程每个进程不能使用超过4GB的RAM。 (如果我错了,请纠正我)32位Mysql将作为N个数据库的单个进程(mysqld)运行。 如果我有100个数据库,对于100个DB的事务,由于MySQL的32位限制,MySQL使用4GB的RAM。 假设我在64位Linux操作系统上安装了64位MySQL 5,MySQL 64位和Ruby on Rails之间是否有任何gem不兼容? 我想知道是否有MySQL 5 64位gem? 注意:我使用MySQL适配器而不是MySQL 2。 我打算在我的Rails应用程序部署中使用Phusion Passenger。 我有100个Rails应用程序,我的问题是: 是否有64位Phusion Passenger可用。 如果是,我在哪里可以找到它? 如果我在64位操作系统中运行带有32位Phusion Passenger的100个Rails应用程序,我的Phusion会有效地利用我的32 GB RAM吗? Phusion Passenger i100进程中有100个Rails应用程序还是100个线程? 要通过Ruby on Rails + Nginx-Phusion Passenger + MySQL有效地利用我的硬件,我需要做些什么来处理32位和64位应用程序以及操作系统? 我的申请信息是: Ruby […]

铁路服务器错误? (轨道3)在窗户

我使用命令创建了一个新项目: rails new simple_cms -d mysql 但是当我尝试启动Web服务器时,会发生这种情况: C:\Users\johnny\Sites\simple_cms>rails server C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require’: 193: %1 is not a valid Win32 application. – C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/1.9/mysql2.so (LoadError) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `require’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2.rb:9:in `’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:68:in `require’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:68:in `block (2 levels) in require’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:66:in `each’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:66:in `block in require’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `each’ from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.1.1/lib/bundler/runtime.rb:55:in `require’ […]

MySQL不会在与Rubber部署的EC2上连接

我正在使用橡胶来部署rails应用程序,并且无法连接到MySQL。 我是否必须在EC2上手动设置MySQL,或者橡胶是否已经这样做了? 虽然这不是那么有用,但是在运行rake时这是日志输出: ** [out :: db01.memepluspl.us] rake aborted! ** [out :: db01.memepluspl.us] ** [out :: db01.memepluspl.us] Access denied for user ”@’db01.memepluspl.us’ to database ‘meme_plus_plus_production’ ** [out :: db01.memepluspl.us] ** [out :: db01.memepluspl.us] ** [out :: db01.memepluspl.us] Tasks: TOP => db:migrate => environment

来自heroku的DB pull因Encoding :: CompatibilityError而失败

我在执行db时遇到了一些问题:从heroku回到我当地的开发环境。 我的设置是MySQL(5.1.50),通过RVM在Mac OS X Snow Leopard下的本地Rails 3 / Ruby 1.9.2环境中安装MacPorts,我已经成功执行了一个heroku db:push送到Heroku上的生产站点多次。 但是,在具有相同设置的二次开发机器上,当我尝试通过heroku db:pull Heroku数据库heroku db:pull ,我在下载表和索引信息一段时间后得到以下错误: /Users/jschuur/.rvm/gems/ruby-1.9.2-p0/gems/sequel-3.15.0/lib/sequel/adapters/shared/mysql.rb:399:in `join’: incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError) from /Users/jschuur/.rvm/gems/ruby-1.9.2-p0/gems/sequel-3.15.0/lib/sequel/adapters/shared/mysql.rb:399:in `multi_insert_sql’ 这是相关的gem: ruby-mysql (2.9.3) sequel (3.15.0) mysql2 (0.2.4) taps (0.3.13) heroku (1.10.6, 1.10.5, 1.10.0) 这里有完整的错误和gem列表。 同样的错误发生在我的主要生产机器BTW(我一直在做成功的数据库:推送到heroku表单)。 现在我明白这基本上是一个UTF8编码错误。 FWIW,我的database.yml显式引用了UTF8: development: adapter: mysql2 encoding: utf8 database: rails_dev_dbname pool: 5 username: […]

使用Ruby on Rails索引多列

我在Mysql数据库中有一个表,我想使用多列索引。 如何使用mysql控制台在rails中执行此操作?

DB的自定义rake任务:找不到表

我有一个自定义rake任务,它创建一个包含各种情况数据的开发DB。 核心看起来像这样: namespace :db do task setup_seed: :environment do Rake::Task[‘db:drop’].invoke Rake::Task[‘db:create’].invoke Rake::Task[‘db:schema:load’].invoke Rake::Task[‘db:migrate’].invoke Rake::Task[‘db:test:prepare’].invoke Rake::Task[‘db:seed’].invoke end end 一切运行正常,直到db:seed被调用,因为它抛出了表不存在的错误。 这是我的seed.rb : puts Rails.env # => development puts Article.count # rake aborted! # Mysql2::Error: Table ‘app_test.articles’ doesn’t exist: SHOW FULL FIELDS FROM `articles` # /usr/src/app/db/seeds.rb:2:in `’ # /usr/src/app/Rakefile:16:in `block (2 levels) in ‘ # Tasks: TOP => […]

Mysql2 ::错误:您的SQL语法中有错误

我只是用它将我的rails app db从sqlite3切换到mysql2,这似乎正常。 但是,当我启动我的应用程序时,我现在得到这个: A ActionView::Template::Error occurred in pages#dashboard: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘== 1) LIMIT 20 OFFSET 0’ at line 1: SELECT `tickets`.* FROM `tickets` WHERE (archived == 1) LIMIT 20 OFFSET […]

Unicorn和Rails占用了2倍的MySQL连接

我为每个服务器运行10个Unicorn工作程序,他们随着时间的推移吃掉所有MySQL连接,结果是“连接太多”错误。 它从10个连接开始,但逐渐增加到20个。 当我在生产中运行以下脚本时(使用SHOW PROCESSLIST ),我可以看到每个IP(= app服务器)每个都有20个连接,它应该是10 – 令Unicorn工作者的数量增加了两倍。 result = ActiveRecord::Base.connection.execute ‘show processlist’ result.group_by{|i| i[2].split(‘:’).first }.map{|k,v| [k, v.size] } => [[“192.168.1.2”, 20], [“192.168.1.3”, 20], [“192.168.1.4”, 20], … ] 这是database.yml production: adapter: mysql2 … pool: 1 这是netstat: # netstat -an | grep :3306 tcp 0 0 192.168.1.2:58535 192.168.1.123:3306 ESTABLISHED tcp 0 0 192.168.1.2:45021 192.168.1.123:3306 ESTABLISHED tcp […]