数据备份
使用mysqldump命令备份, mysqldump命令将数据库中的数据备份成一个文本文件。它的原理是:
查出要备份的表的结构,生成 生成这个表的create 语句,将所有数据转换成insert语句,保存到文件中。
备份数据库
mysqldump -u username -p dbname table > backupName.sql
C:\WINDOWS\system32>mysqldump -u root -p bms > d://bms.bak.sql
Enter password: **********
此时在d盘要目录下生成了bms.bak.sql文件。
备份多个数据库,加上--databases选项
mysqldump -u username -p --databases dbname dbname2 > backup.sql
备份所有数据库
mysqldump -u username -p -all-databases > backupName.sql
直接复制整个数据库目录
mysql 有一种非常简单的备份方法,直接将mysql中的数据库文件复制出来。但你得先将mysql server停止,这样保证在复制期间数据库数据不会发生变化。
注意, 只适用于myISAM引擎。同时还原时mysql版本最好相同。
使用mysqlhotcopy工具快速备份
mysqlhotcopy是热备份,使用locktables, flush tables 和cp来进行快速备份
原理是:先将要备份的数据库上加一个读锁,然后flush tables 将内存中数据写回到硬盘中的数据库,然后将要备份的数据库文件复制到目标目录。
mysqlhotcopy [options] dbname1 dbname2 backupdir/
常用选项:
--allowold: 如果备份目录下存在相同的备份文件,将的备份文件加上_old
--keepold: 如果 备份目录下存在相同的备份文件,不删除旧的备份文件,而将旧的文件更名
--flushlog 本次备份后,将对数据库的更新记录到日志中
--noindices:只备份数据文件,不备份索引文件
--user = username
--password=password
--port =port
--socket=socket
同样只支持myISAM
数据还原
mysql -u root -p dbname < backup.sq
myISAM 类型的表可以直接复制备份文件