首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RubyonOSX10.11.3的MySQL 5.7.10问题

问RubyonOSX10.11.3的MySQL 5.7.10问题
EN

Stack Overflow用户
提问于 2016-02-11 18:36:32
回答 1查看 1.3K关注 0票数 4

我成功地在基于OSX10.11.3的系统上安装了mySQL 5.7.10和mySQL gem。我现在试图运行以下代码:

代码语言:javascript
复制
require 'mysql'
require 'cgi'
class MysqlSaver
  def saveWordStats(globalWordStats,time)
    con = Mysql.new 'localhost', 'x', 'x', 'x'
    i = 0
    for word in globalWordStats.keys[0..10000]
      print "#{i}\r"
      i+=1
      stat = globalWordStats[word]
      time = time
      escaped_word = Mysql.escape_string(word)
      begin
        escaped_word = escaped_word.gsub("\\","")
        escaped_word = escaped_word.gsub("/","")

        escaped_word = escaped_word.gsub("-","")
        escaped_word = "#{escaped_word}_word"
        con.query("CREATE TABLE IF NOT EXISTS #{escaped_word}(percent DOUBLE, time INT)")
        con.query("INSERT INTO #{escaped_word}(percent,time) VALUES('#{stat}','#{time}')")
      rescue
        puts "#{$!}"
      end

    end
    con.close
    puts "DONE"
  end

end

此代码工作正常,没有任何错误。我能够在我的mySQL数据库中创建表和存储值。但是,如果我尝试用以下代码在数据库中创建/存储>=≈10.000值,那么在脚本运行完之后,我就无法再连接到mySQL服务器:

代码语言:javascript
复制
mySQL.rb:5:in `new': Lost connection to MySQL server at 'reading initial communication packet', system error: 102 (Mysql::Error)
from /Users/david/Desktop/Birta2/mySQL.rb:5:in `saveWordStats'
from run.rb:84:in `<main>'

另外,重新启动mySQL服务器也没有帮助(只需要重新启动整个mac就可以了!)

在错误发生后,我可以在mySQL日志文件中找到这条奇怪的行:

代码语言:javascript
复制
2016-02-11T18:20:51.177054Z 0 [Warning] File Descriptor 1098 exceedeed FD_SETSIZE=1024 

有办法纠正这个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-07 16:04:15

FD_SETSIZE是您一次打开的文件的最大数量。如果使用InnoDB,则在活动数据库中,每个mysqld进程在每个表中保持一个文件是打开的,因此,如果您有大量表或大量进程,则很容易超出。您可以在my.cnf中更改一些设置来修复此问题。

table_open_cache是MySQL试图同时保持打开的表数:

代码语言:javascript
复制
table_open_cache = 1000

max_connections是同时连接的最大数量(mysqld进程),它允许:

代码语言:javascript
复制
max_connections = 25

如果数据库中有N表,最好保持N * table_open_cache * max_connections小于FD_SETSIZE。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35347378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档