MySQL数据备份与恢复

ec3y 10年前

一:从数据库导出数据库文件</strong></span>
1.将数据库mydb导出到e:\MySQL\mydb.sql文件中: 打开开始->运行->输入cmd 进入命令行模式

c:\>MySQLdump -h localhost -u root -p mydb >e:\MySQL\mydb.sql 
</span>

然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。

2.将数据库mydb中的mytable导出到e:\MySQL\mytable.sql文件中:


c:\>MySQLdump -h localhost -u root -p mydb mytable>e:\MySQL\mytable.sql 


3.将数据库mydb的结构导出到e:\MySQL\mydb_stru.sql文件中:

c:\>MySQLdump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql 
</span>

//-h localhost可以省略,其一般在虚拟主机上用 

二:备份mysql数据库

1.命令行导出和导入MySQL数据库 备份MySQL数据库的命令 
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 
</span>


2.备份MySQL数据库为带删除表的格式  备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql  
</span>


3.直接将MySQL数据库压缩备份 

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz 


4.备份MySQL数据库某个(些)表 

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql  


 
5.同时备份多个MySQL数据库 
</span>

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql 


6.仅仅备份数据库结构 

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql 


7.备份服务器上所有数据库 

mysqldump –all-databases > allbackupfile.sql  

三:还原mysql备份

1.还原MySQL数据库的命令 

mysql -hhostname -uusername -ppassword databasename < backupfile.sql  


2.还原压缩的MySQL数据库 

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename  


3.将数据库转移到新服务器 
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename 
 
四:从外部文件导入数据到数据库中:
从e:\MySQL\mydb2.sql中将文件中的SQL语句导入数据库中:
</span>

1.从命令行进入MySQL,然后用命令CREATE DATABASE mydb2;创建数据库mydb2。

 2.退出MySQL 可以输入命令exit;或者quit; 3.在CMD中输入下列命令:


c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql 

然后输入密码,就OK了。


五:下面谈一下关于导入文件大小限制问题的解决</strong>
默认情况下:MySQL 导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,下面就这个问题的解决列举如下:
1.在php.ini中修改相关参数:

 
影响MySQL导入文件大小的参数有三个:
1.
memory_limit=128M,upload_max_filesize=2M,post_maxsize=8M 
修改upload
 ......
</span>

以上的相关内容就是对MySQL导入导出.sql文件的介绍,望你能有所收获。 


总结:在MySQL中备份方式又三种:

(1) 使用mysqldump  -u root - p  dbName    tablename1 ,tablename2  ....>backUpname.sql;

(2)这种备份速度最快:就是将要备份的数据目录直接复制就可以。这中复制比较快,但是在复制的时候要停止服务器的工作,不然会出现数据不一致的现象,但是在实际使用是不会停止服务器,所以这种备份方式不是最好的。 还有这种备份方式对于myisam这种存储引擎很适应但是不能使用在innodb这种存储引擎中,因为innodb类型表的表空间不能直接复制。

(3) 使用mysqlhotcop 进行备份这种备份速度比mysqldump速度快,但是mysqlhotcop这种备份工具mysql不自带,要单独下载安装。