使用大 blob 恢复大型 mySQL 转储
Restoring large mySLQ dump with large blob
我正在尝试下载并恢复一个非常大的 mySQL 转储 (>40GB),其中还包含表中的大型二进制 blob。
我正在使用这样的命令行:
curl 'https://url_from_doogle_dirve' -H ... --compressed | mysql --user=root --password=my-secret
操作开始,但在大约 57MB 后出现以下错误:
ERROR 2013 (HY000) at line 388: Lost connection to MySQL server during query
我想我已经阅读了几乎所有关于此错误的帖子并尝试了很多解决方案,但不幸的是 none 对我有用
这是我的 mysqld.cnf
文件(仅相关部分):
key_buffer_size = 16M
max_allowed_packet = 32M
thread_stack = 192K
thread_cache_size = 8
myisam-recover-options = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
net_write_timeout = 36000
net_read_timeout = 36000
innodb_buffer_pool_size = 32M
wait_timeout = 36000
我不得不将 max_allowed_packet
增加到 32MB
因为 16MB
它之前因另一个错误而失败,但现在我有这个新的 ERROR 2013
似乎与大查询/超时。实际上,如上所述,表包含每个可能大于 20 / 30 MB 的二进制 blob。
编辑
我也试过在本地下载 sql 文件,但我得到了相同的结果,所以它与 curl
无关
MySQL 5.7.29 在 Ubuntu 服务器 18.04.4
好的,感谢 maria-db,我找到了问题。
我 运行 在 mariadb 服务器而不是 mySQL 服务器上执行相同的命令,我遇到了同样的问题,但 mariadb 给了我一个更有意义的错误消息:
ERROR 1118 (42000) at line 388: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
所以我设置
innodb_log_file_size=256M
它现在正在运行(尚未完成,但至少这个问题已经解决了)
我想它也可以在 mySQL 服务器上运行。
我正在尝试下载并恢复一个非常大的 mySQL 转储 (>40GB),其中还包含表中的大型二进制 blob。 我正在使用这样的命令行:
curl 'https://url_from_doogle_dirve' -H ... --compressed | mysql --user=root --password=my-secret
操作开始,但在大约 57MB 后出现以下错误:
ERROR 2013 (HY000) at line 388: Lost connection to MySQL server during query
我想我已经阅读了几乎所有关于此错误的帖子并尝试了很多解决方案,但不幸的是 none 对我有用
这是我的 mysqld.cnf
文件(仅相关部分):
key_buffer_size = 16M
max_allowed_packet = 32M
thread_stack = 192K
thread_cache_size = 8
myisam-recover-options = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
net_write_timeout = 36000
net_read_timeout = 36000
innodb_buffer_pool_size = 32M
wait_timeout = 36000
我不得不将 max_allowed_packet
增加到 32MB
因为 16MB
它之前因另一个错误而失败,但现在我有这个新的 ERROR 2013
似乎与大查询/超时。实际上,如上所述,表包含每个可能大于 20 / 30 MB 的二进制 blob。
编辑
我也试过在本地下载 sql 文件,但我得到了相同的结果,所以它与 curl
MySQL 5.7.29 在 Ubuntu 服务器 18.04.4
好的,感谢 maria-db,我找到了问题。
我 运行 在 mariadb 服务器而不是 mySQL 服务器上执行相同的命令,我遇到了同样的问题,但 mariadb 给了我一个更有意义的错误消息:
ERROR 1118 (42000) at line 388: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
所以我设置
innodb_log_file_size=256M
它现在正在运行(尚未完成,但至少这个问题已经解决了) 我想它也可以在 mySQL 服务器上运行。