Questions tagged «mysqldump»

MySQL的标准转储/备份实用程序


11
如何监视大.sql文件的导入进度?
我正在导入7 GB的空间foobar.sql以还原本地数据库中的表。 $ mysql -h localhost -u root 'my_data' < foobar.sql $ mysql --version /usr/local/mysql/bin/mysql Ver 14.12 Distrib 5.0.96, for apple-darwin9.8.0 (i386) using readline 5.1 如何监控进度?
204 mysql  mysqldump  import 

7
如何优化大型数据库的mysqldump?
我有一个Symfony应用程序,其中有一个带有57个表的〜2GB InnoDB数据库。数据库的大部分大小都驻留在单个表中(约1.2GB)。我目前正在使用mysqldump每晚备份数据库。 由于使用comcast连接,通常,如果我手动运行转储,则在转储完成之前,我与服务器的连接会超时,导致不得不重新运行转储。[我目前运行一个每天晚上进行转储的cron,这仅用于我手动运行的转储。] 有没有一种方法可以加快转储以解决连接超时问题,还可以限制服务器占用此过程的时间? 顺便说一句,我目前正在努力减少整个数据库的大小,以解决此问题。


6
在活动的系统上执行有效读写的最安全方法是mysqldump?
我不确定这是否是正确的,但我记得阅读过,如果您在linux中运行以下命令 mysqldump -u username -p database_name > backup_db.sql 在对数据库进行读写时,转储可能包含错误。 命令中是否有特定选项mysqldump来确保在实时系统上安全地完成此操作?我可以为用户禁用读/写功能几秒钟(数据库<50MB)

4
MySQL以任何方式导入巨大的(32 GB)sql转储更快?
我有一个巨大的32 GB SQL转储,需要导入MySQL。我以前不必导入这么大的SQL转储。我照常做: mysql -uroot dbname < dbname.sql 花费的时间太长了。一张桌子大约有3亿行,大约3个小时就达到了150万行。因此,似乎整个过程将花费600个小时(即24天),并且是不切实际的。所以我的问题是,有没有更快的方法可以做到这一点? 进一步的信息/发现 这些表都是InnoDB,并且没有定义外键。但是,有很多索引。 我没有访问原始服务器和数据库的权限,因此无法进行新备份或进行“热”复制等。 此处innodb_flush_log_at_trx_commit = 2建议的设置似乎并没有(明显可见/指数)改善。 导入期间(从MySQL Workbench)的服务器统计信息:https : //imgflip.com/gif/ed0c8。 MySQL版本是5.6.20社区。 innodb_buffer_pool_size = 16M和innodb_log_buffer_size = 8M。我需要增加这些吗?

3
为什么InnoDB将所有数据库存储在一个文件中?
MyISAM过去很方便地将每个表存储在相应的文件中。InnoDB在很多方面都取得了进步,但是我不知道为什么InnoDB将所有数据库存储在一个文件中(ibdata1默认情况下)。 我知道InnoDB将按表的各个索引文件映射文件中数据的位置,但是我不明白为什么它将所有数据混合在一个文件中。更重要的是,为什么要混合服务器上所有数据库的数据? MyISAM的一个有趣功能是可以将数据库文件夹复制/粘贴到另一台计算机上,然后使用该数据库(无转储)。

5
为什么DROP DATABASE需要这么长时间?(MySQL)
新的CentOS安装。 我正在运行一个大型数据库(2GB的sql文件)的导入,出现了问题。SSH客户端似乎失去了连接,导入似乎冻结了。我使用另一个窗口登录mysql,导入似乎已死,卡在特定的3M行表上。 所以我尝试了 DROP DATABASE huge_db; 15-20分钟后,什么都没有。在另一个窗口中,我做了: /etc/init.d/mysqld restart DROP DB窗口消息:服务器关闭。然后,我实际上重新启动了物理服务器。 重新登录到mysql,检查并且db仍然存在,运行 DROP DATABASE huge_db; 再一次,我已经等了大约5分钟。 再一次,它是全新的安装。的huge_db是唯一的分贝(除系统DBS其他)。我发誓我已经并且很快就放弃了这么大的数据库,但是也许我错了。 我已经成功删除了数据库。花了大约30分钟。另请注意,当我以为mysqldump导入已死时,我认为我弄错了。终端连接丢失,但是我认为该过程仍在运行。我最有可能杀死了导入中间表(3M行表),并且可能杀死了整个数据库的3/4。令人误解的是,“ top”显示mysql仅使用3%的内存,而它似乎应该使用更多的内存。 删除数据库最终花费了30分钟,因此,再次,我可能不必重新启动服务器,并且可能刚刚等待DROP完成,但是我不知道mysql如何响应获取DROP查询。通过mysqldump导入的同一个数据库。 仍然存在问题,为什么删除所有2GB数据库并删除所有db文件并从information_schema中删除对DB的所有引用时,为什么要花30分钟以上的时间来删除2GB数据库?有什么大不了的?
46 mysql  mysqldump 


6
如何在MySQL中导入.sql文件?
我正在尝试使用MySQL Workbench导入.sql文件,但出现此错误: ERROR 1046 (3D000) at line 28: No database selected 我首先创建了一个空数据库,其名称与.sql文件相同,但不起作用。我还尝试使用以下命令通过mysql命令客户端执行此操作: mysqldump -u root database > file.sql 但是它说我的SQL语法有错误。此外,我不知道必须设置file.sql的路径。


7
mysqldump是否可以转储重现查询所需的数据库子集?
背景 我想提供重现select查询所需的数据库子集。我的目标是使我的计算工作流具有可重现性(就像在可重现的研究中一样)。 题 有没有一种方法可以将这个select语句合并到一个脚本中,该脚本将查询到的数据转储到新数据库中,以便可以将数据库安装在新的mysql服务器上,并且该语句可以与新数据库一起使用。除了已在查询中使用的记录以外,新数据库不应包含其他记录。 更新: 为澄清起见,我对查询结果的csv转储不感兴趣。我需要做的是转储数据库子集,以便可以将其安装在另一台计算机上,然后查询本身可以重现(并且可以针对同一数据集进行修改)。 例 例如,我的分析可能查询需要从多个(在此示例中为3个)表中进行记录的数据子集: select table1.id, table1.level, table2.name, table2.level from table1 join table2 on table1.id = table2.table1_id join table3 on table3.id = table2.table3_id where table3.name in ('fee', 'fi', 'fo', 'fum');

4
如何在Mysql中更改VIEW的DEFINER?
当我运行mysqldump时,出现错误: mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES 这是有道理的,因为foobar不再有旧机器。 如何将所有表的定义器更改为'root'@'localhost'?

3
将MySQL / Amazon RDS数据库备份到S3的推荐方法是什么?
我有两个目的: 在Amazon Web Services出现区域性问题时进行场外备份。 将生产数据从生产帐单帐户复制到Beta帐单帐户。 当前,亚马逊似乎并没有开箱即用地支持这两种用例之一。 我已经看到提到了mysqldump和xtrabackup(请参阅表单发布)。 我还看到了一个更复杂的过程(在此处记录) 源计费帐户(prod)中的新RDS服务器从最近的备份中分离出来。 在步骤1中启动了一个新的EC2实例,该实例可以访问RDS服务器。 mysqldump用于对该数据库进行备份。 备份已复制到异地位置(S3?)。 在单独的帐户和/或区域中,将启动一个新的RDS服务器。 数据库转储已导入。 提示和建议,不胜感激。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.