虚拟主机MySQL数据库的备份与还原的方法
程序员文章站
2023-11-27 23:23:46
以前介绍过一个小巧的mysql备份php脚本程序,不过那适合没有mysql shell权限的虚拟主机用户,这里想讲一下更为通用的备份与还原方法,适合有自己主机的朋...
以前介绍过一个小巧的mysql备份php脚本程序,不过那适合没有mysql shell权限的虚拟主机用户,这里想讲一下更为通用的备份与还原方法,适合有自己主机的朋友。
1、关于备份:我们在使用mysql中一般都用myisam类型的表,这种表是以文件形式保存的文件系统中的;而heap类型的表是保存在内存中的,下面的方法是针对myisam表的。
1.1、直接拷贝数据库文件。首先不推荐使用这种方法,因为拷贝的数据表是针对特定操作系统(硬件环境)的,移到其他系统中有可能会出问题。其次备份时候要停止mysql服务器或者锁定相应的表,否则如果拷贝过程中正好在插入/改写数据库就挂了,不适合需要不间断的服务器。这种方法最大好处是方便快捷,备份时候只要拷贝mysql数据目录相应数据库文件夹中的所有文件即可,其中*.frm是描述了表的结构,*.myd保存了表的数据记录,*.myi则是表的索引。
1.2、使用mysqldump工具:利用这个程序可以把数据库导出成sql语句形式的文本文件,方便移动到不同系统,还原时候会一条条执行文件中的sql语句即可重建数据库。实际使用时在windows下cmd里或者linuxshell输入命令:
mysqldump -u user_name -p database_name --option > path:/xxx.sql;回车
;user_name是用户名
;database_name 是数据库名
;path:/xxx.sql 是保存备份文件的路径与文件名
然后输入密码就会导出数据库到指定path下的.sql文件了,要保证用户有足够权限访问相应数据库。--option是备份时可以指定的一些参数,可以参考mysql官方文档,常用几个选项:
--opt ——一组常用默认选项,包括--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset
--add-drop-table ——在建立表时候先drop旧表,适合覆盖数据库
--where——按照条件备份部分记录,例如:--where="id<1000'"
mysqldump工具的参数功能相当多,还需要好好研究下~
2、关于还原
2.1、对于直接拷贝数据库文件的方法,把相应文件覆盖回数据目录即可还原。
2.2、对于dump出来的.sql文件,可以在mysql命令行中输入:
use target_database;选择要还原的数据库,最好新建一个空的
\. path:/xxx.sql;将指定的备份文件还原到当前数据库
1、关于备份:我们在使用mysql中一般都用myisam类型的表,这种表是以文件形式保存的文件系统中的;而heap类型的表是保存在内存中的,下面的方法是针对myisam表的。
1.1、直接拷贝数据库文件。首先不推荐使用这种方法,因为拷贝的数据表是针对特定操作系统(硬件环境)的,移到其他系统中有可能会出问题。其次备份时候要停止mysql服务器或者锁定相应的表,否则如果拷贝过程中正好在插入/改写数据库就挂了,不适合需要不间断的服务器。这种方法最大好处是方便快捷,备份时候只要拷贝mysql数据目录相应数据库文件夹中的所有文件即可,其中*.frm是描述了表的结构,*.myd保存了表的数据记录,*.myi则是表的索引。
1.2、使用mysqldump工具:利用这个程序可以把数据库导出成sql语句形式的文本文件,方便移动到不同系统,还原时候会一条条执行文件中的sql语句即可重建数据库。实际使用时在windows下cmd里或者linuxshell输入命令:
mysqldump -u user_name -p database_name --option > path:/xxx.sql;回车
;user_name是用户名
;database_name 是数据库名
;path:/xxx.sql 是保存备份文件的路径与文件名
然后输入密码就会导出数据库到指定path下的.sql文件了,要保证用户有足够权限访问相应数据库。--option是备份时可以指定的一些参数,可以参考mysql官方文档,常用几个选项:
--opt ——一组常用默认选项,包括--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset
--add-drop-table ——在建立表时候先drop旧表,适合覆盖数据库
--where——按照条件备份部分记录,例如:--where="id<1000'"
mysqldump工具的参数功能相当多,还需要好好研究下~
2、关于还原
2.1、对于直接拷贝数据库文件的方法,把相应文件覆盖回数据目录即可还原。
2.2、对于dump出来的.sql文件,可以在mysql命令行中输入:
use target_database;选择要还原的数据库,最好新建一个空的
\. path:/xxx.sql;将指定的备份文件还原到当前数据库