数据库备份与还原

数据备份
    使用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 类型的表可以直接复制备份文件
 

上一篇:Vsauce 搬砖(更新)

下一篇:DateTimeField DateField 无法设置为editable