gpt4 book ai didi

mysql chef 数据库配方在大文件上失败

转载 作者:行者123 更新时间:2023-11-29 02:59:50 26 4
gpt4 key购买 nike

“MySQL 服务器已经消失”。嗯。

我正在使用 vagrant 和 chef 来设置我的虚拟开发环境。我快到了,但在最后一步, Chef 在尝试执行我的外部 db_setup.sql 文件时失败了。我可以通过 SSH 连接到虚拟服务器来执行相同的脚本,并且安装起来没有任何困难。

这是我的问题代码(在 cookbooks/database/recipies/mysql.rb 文件中):

# Query a database from a sql script on disk
mysql_database 'run script' do
database_name 'my_db'
connection mysql_connection_info
retries 3
sql { ::File.open('/vagrant/db_setup.sql').read }
action :query
end

文件大小为 6.9mb,我在运行 vagrant provision 时收到的错误是:

==> default: [2014-08-24T16:04:53-07:00] ERROR: mysql_database[run script] 
(database::mysql line 50) had an error: Mysql::Error: MySQL server has gone away

就其值(value)而言,当我用一个更小、更简单的文件替换 db_setup.sql 文件时,它只创建了几个空表,它执行起来没有困难。

有什么建议吗?提前致谢!

最佳答案

很多很多东西都可以cause this error .根据我的经验,它通常是一个超过 1MB 的 SQL 文件,或者,您的服务器 my.cnf 中的 wait_timeout 设置得非常低(60 秒)需要适当调整。部署 my.cnf 时,请尝试使用 wait_timeout 86400 和“足够”的 max_allowed_pa​​cket 来导入该文件。

例如:

 [mysqld]
wait_timeout = 86400
max_allowed_packet = 1GB

附言。在实际生产中我不会推荐这么高的参数。

关于mysql chef 数据库配方在大文件上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25477128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com