-Fatal-无法分配内存 - Rails 3.1和Mysql2 Gem

red*_*oot 5 ruby ruby-on-rails mysql2 ruby-on-rails-3

我遇到了一个奇怪的问题,最新的'mysql2'宝石和Rails 3.1当我包含gem时,我可以从IRB运行mysql,但是每当我试图在控制台中保存到数据库时,我都可以运行rails,甚至加载服务器启动时的页面,我得[致命]无法分配内存.

似乎没有任何可用的mysql日志,这是Rails显示的唯一错误.有趣的是,当我在Rails控制台中启动连接并运行计数查询(例如User.count)时,它工作正常,但是当我尝试退出控制台时,它会无限期挂起.我正在配对的所有人都使用相同的代码库和数据库结构并且没有问题......

其他人有这种问题吗?我昨天尝试卸载并重新安装自制程序和mysql,但它仍然会发生.

pro*_*nce 0

我认为这可能与您的机器和/或 MySQL 配置有关,而不是与 ruby​​ 有关。检查允许 MySQL 保留多少内存。这些参数应该位于数据库的初始化或启动文件中。不幸的是,我不知道在哪里使用 MySQL 查找这些文件。

我曾经在 Postgres 中遇到过类似的错误,因为我在配置文件中犯了一个拼写错误。在 Postgres 中,您要查找的文件如下所示。对于 MySQL 来说应该不会有太大不同:

#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------

# - Memory -

!!!THIS is the field you want to change!!!
shared_buffers = 28MB                   # min 128kB, default 28
                                        # (change requires restart)

#temp_buffers = 8MB                     # min 800kB
#max_prepared_transactions = 0          # zero disables the feature
                                        # (change requires restart)


# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 1MB                         # min 64kB
#maintenance_work_mem = 16MB            # min 1MB
#max_stack_depth = 2MB                  # min 100kB
Run Code Online (Sandbox Code Playgroud)