如果只有MyISAM数据库,只需复制粘贴数据文件夹即可进行备份和还原,无论版本如何?
但是,如果有INNODB数据库,并且我们确信源版本和目标版本是相同的,那么这种复制和粘贴方法是可能的吗?
最好避免input任何命令来进行备份,因为这样做的人以前从未使用过命令行。
如果我们必须始终避开命令行,那么我们绝对不会登上月球。 要么让另一个宇航员或火车更难。
如果您正在讨论生产中的实时数据库,则这些值可能会变得不稳定,因此,通过简单地复制一堆文件来进行数据库备份(在任何数据库types中)将是不可靠的。
您可以通过以下方式获得整个mysql数据库(包括系统表)的安全备份:
mysqldump --all-databases > mysqlbackup.sql
备份在文件mysqlbackup.sql中 – 这可以备份到磁带,DVD等。
恢复是相反的,做redirect备份文件到MySQL客户端。
mysql < mysqlbackup.sql
对于这些命令中的任何一个,您可能都需要-u具有pipe理权限的用户名,-p指定密码。
如果您绝对必须使用复制和粘贴,必须停止两端的MySQL服务,则必须具有相同的configuration,并且必须复制所有日志文件以及数据文件夹。
但是,正如已经指出的那样,这是一条糟糕的路。 创build一个脚本并告诉需要运行它的人需要input什么命令没什么大不了的。 假设这个人很聪明,能够login到机器,我希望他/她运行一个命令没有问题。
另一个select是创build一个主从副本,让它自己保持最新,用户不需要做任何事情。 当然,你仍然需要监视系统,以确保它正常工作,但你仍然应该这样做。
我不会build议复制和粘贴文件。 如果这个人不是技术人员,你将如何确保mysql守护进程被正确地停止?
如果这是针对非技术用户,那么您应该花时间构build一个调用mysqldump的脚本来为其创build备份。
你真的不应该考虑一个复制奴隶是一个很好的备份解决scheme。 例如,如果某个数据库被删除或在主服务器上执行了其他有害的SQL,会发生什么? 这些陈述只是复制到你的奴隶,并采取相同的行动,使事件发生之前不可能回滚到一个点。
遵循拉布拉多的build议,至less使用mysqldump。