在将数据库导入我的 amazon rds 实例时,我收到了以下错误:
ERROR 2006 (HY000) at line 667: MySQL server has gone away
我继续尝试将interative_timeout
设置更改为更大的数字。但是,它只会让我为会话设置它,而亚马逊不允许为全局会话设置它。
如何将更大的数据库导入我的亚马逊 rds 实例?
在将数据库导入我的 amazon rds 实例时,我收到了以下错误:
ERROR 2006 (HY000) at line 667: MySQL server has gone away
我继续尝试将interative_timeout
设置更改为更大的数字。但是,它只会让我为会话设置它,而亚马逊不允许为全局会话设置它。
如何将更大的数据库导入我的亚马逊 rds 实例?
您可以使用参数组设置简单地更改 RDS 数据库大小设置。大多数 MSQL 设置都在那里。但是,这将需要重新启动实例。您想要的设置是 max_allowed_packet ,您不仅需要在客户端设置它,还需要在服务器本身上设置它。
我是这样做的,请注意我的数据库不是很大(最大的是 1.5G)。
首先转储您现有的数据库:
mysqldump [database_name] --master-data=2 --single-transaction --order-by-primary -uroot -p | gzip > /mnt/dumps/[database_name].sql.gz
然后,您可以将此文件传输到有权使用类似scp访问您的 RDS 实例的 Amazon EC2 实例。一旦文件位于您的 Amazon EC2 实例上,您应该使用以下方法提取它:
gzip [database_name].sql.gz -d
#you should now have a file named [database_name].sql in your directory.
mysql -uroot -p -h=[rds-instance]
source [database_name].sql
然后它应该开始导入。此信息位于他们的文档中。
该文档提供了有关如何导入大型数据集的说明。通常,最好的方法是创建平面文件并将它们导入您的 RDS 实例。
我最近完成了一个超过 120GB 的数据库从物理服务器到 RDS 的迁移。我将每个表转储到一个平面 CSV 文件中,然后将较大的文件分成多个 1GB 大小的部分。然后我将每个表导入到 RDS。