我在基于OSX 10.11.3的系统上成功安装了mySQL 5.7.10和Ruby的mySQL gem.我现在正在尝试运行以下代码:require mysqlrequire cgiclass MysqlSaverdef saveWordStats(globalWordStats,time)con = Mysql.new loc...

我在基于OSX 10.11.3的系统上成功安装了mySQL 5.7.10和Ruby的mySQL gem.我现在正在尝试运行以下代码:
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服务器:
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日志文件中找到这条奇怪的行:
2016-02-11T18:20:51.177054Z 0 [Warning] File Descriptor 1098 exceedeed FD_SETSIZE=1024
有没有办法解决这个错误?
解决方法:
FD_SETSIZE是您可以一次打开的最大文件数.如果您正在使用InnoDB,则每个mysqld进程会在活动数据库中为每个表保留一个文件,因此如果您有大量表或大量进程,则很容易超出.你可以在my.cnf中更改一些设置来解决这个问题.
table_open_cache是??MySQL将立即尝试保持打开的表数:
table_open_cache = 1000
max_connections是允许的最大并发连接数(mysqld进程):
max_connections = 25
如果您的数据库有N个表,则最好使N * table_open_cache * max_connections小于FD_SETSIZE.
本文标题为:MySQL 5.7.10与Ruby on OSX 10.11.3有关


基础教程推荐
- ruby-on-rails-为使用Rails 4,nginx和乘客的用户设置自定义域 2023-09-21
- Swift中重写和重载的使用与对比总结 2023-07-05
- win10下使用virtualbox + vagrant配置ruby开发机环境 2023-07-23
- R语言 ggplot2改变柱状图的顺序操作 2022-11-17
- ruby on rails validates 2023-09-22
- Swift初始化器与可选链的使用方法介绍 2023-07-08
- R语言绘制折线图实例分析 2022-11-21
- 浅析ELF转二进制允许把 Binary 文件加载到任意位置 2023-07-06
- R语言-修改(替换)因子变量的元素操作 2022-11-26
- Ruby3多线程并行Ractor使用方法详解 2023-07-23