zoukankan      html  css  js  c++  java
  • MySQL数据库备份与还原

    备份数据库

    1.使用mysqldump命令备份
    • 备份一个数据库:mysqldump -u 用户名 -p密码 数据库名 [表名1,表名2...]>备份文件路径及名字.sql
              如果没有表名,则备份整个数据库
              eg: mysql -u root -p test studentinfo >D: est.sql
     
    • 备份多个数据库:mysqldump -u 用户名 -p --databases 数据库1,数据库2...  >  备份文件路径及名字.sql
     
    • 备份所有数据库:mysqldump -u 用户名 -p --all -databases >  备份文件路径及名字.sql
     
         注:备份时候不一定是.sql文件扩展名,可以任意指定
     
    2.直接复制整个数据库目录
    • 将mysql数据库文件直接复制出来,最好将服务先停止,保证数据一致
    • 对INNODB存储引擎的表不适用
    • 还原时最好是相同版本的MySQL数据库
     
    3.使用mysqlhotcopy工具快速备份
    • 如备份时不能停止mysql服务,可使用此工具。比mysqldump命令快
    • 此工具是一个Perl脚本,主要在Linux下使用
    • 使用LOCK TABLES、FLUSH TABLES和cp来进行快速备份
    • 原理:先将备份的数据库加上一个读操作锁,用FLUSH TABLES将内存中的数据写回到硬盘数据库中,最后将备份的数据库文件复制到目标目录
     
    还原数据库

    1.使用mysql命令还原
    • mysql -u root -p[数据库名]  < backup.sql
    2.直接复制到数据库目录
    • 和前面复制目录备份一样,将目录复制到对应的文件夹下
    • windows下目录:C:/mysql/data     C:/Document and Settings/All Users/Application Data/MySQL/MySQL Server5.1/data等默认路径
    • Linux下:/var/lib/mysql/    /usr/local/mysql/data    usr/local/mysql/var  等默认目录
    • 使用mysqlhotcopy备份的数据库也是通过这种方式还原,复制到数据库目录后,要将数据库的用户和组变成mysql: chwon -R mysql.mysql dataDir
     
    数据库迁移

    1.数据库迁移分类:
    • MySQL相同版本的数据库之间迁移
    • 迁移到MySQL其他版本的数据库中
    • 迁移到其他类型的数据库中
    MySQL相同版本之间迁移:
         mysqldump -h 主机名  -u root -password=password1  -all-databases  |
         mysql -h  host2  -u  root  -password=password2
     
    用SELECT...INTO  OUTFILE导出文本文件
    • SELECT [列名] FROM 表名 [WHERE条件]  INTO  OUTFILE  '目标文件路径'[OPTION];
     
    用mysqldump导出文本文件
    • mysqldump  -u  root  -pPassword  -T  目录  dbname table [OPTION];
    用mysql命令导出文本文件
    • mysql  -u  root  -pPassword  -e "SELECT语句"  dbname  >  D:/backup.txt
    • 导出xml文件:
      • mysql  -u  root  -pPassword  -xml  -X  -e "SELECT语句"  dbname  > D:/backup.xml
    • 导出html文件:
      • mysql  -u  root  -pPassword  --html  -H  -e  "SELECT语句"  dbname  >  D:/backup.html
  • 相关阅读:
    JAVA 之 JSTL
    IDEA 之 ERROR:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]
    JAVA 之 EL表达式
    IDEA 之 ERROR:端口被占用
    【ubuntu】windows+ubuntu 设置windows为第一启动项
    【ubuntu】Error: environment block too small. Press any key to continue
    Navicat premium15安装破解教程
    通过django中间件和python魔法方法实现自定义session(通过文件存储session)
    每日作业 7/2
    每日作业 7/1
  • 原文地址:https://www.cnblogs.com/fanchangfa/p/3745208.html
Copyright © 2011-2022 走看看