1. 使用mysql不熟练啊!!!
  2. mysqldump导出数据库,必须以cmd命令行的形式,在Navicat中以新建查询形式使用Mysqldump不好使的。(本来使用Navicat转储SQL,再导入SQL,但是报错,半天没解决闹心,决定使用Mysqldump)
  3. Mysqldump在cmd中导出数据库,有一点必须要注意,就是不能登录mysql,如果使用mysql -h 47.94.88.36 -u root -p登录了。那么再使用mysqldump -h 47.94.88.36 -u root -p dbname tablename > db.sql导出数据表结构和数据会提示你加分号,加了分号之后会报错(我觉得和分号无关,主要是因为登录了吧?)。意思就是不能登录,要在未登录的状态下使用mysqldump -h 47.94.88.36 -u root -p dbname tablename > db.sql 命令,然后提示输入密码,就能够成功导出数据了。而且在使用此命令的时候,后面不能加 ;。
  4. 备份
    1. 备份整个数据库:

      mysqldump -uroot -proot --lock-all-tables --databases emotional_course > e:/project/SQLBackUp/course.sql       #emotional_course   是数据库名
      # 导出一个数据库, 注意选项参数 --databases 这里, 不要使用--database官方不推荐使用,而且以后的版本可能会移除.(会有一个warning)
      mysqldump -uroot -proot emotional_course > e:/project/SQLBackUp/course.sql #区别是上面的会锁表(全局读锁),并且在SQL文件的第一行会创建数据库, 这条语句不会再SQL文件中创建数据库

      --lock-all-tables: 在mysqldump导出的整个过程中以read方式锁住所有表, information_schema(不会导出)performance_schema(不会导出)指定--lock-all-tables参数,那么从一开始就对整个mysql实例加global read lock锁。这整个全局读锁会一直持续到导出结束。导出的数据库在数据一致性上是被严格保证的,也就是数据是一致性的。
      在备份的时候, 备份数据会上锁(写锁).

    2. 备份某个表:
      mysqldump -uroot -proot emotional_course user > e:/project/SQLBackUp/course_user.sql    #备份一个表
      mysqldump -uroot -proot emotional_course user course > e:/project/SQLBackUp/userandcourse.sql #备份多个表, 注意表名与表名之间是空格, 不要加标点符号(备份user表和course表)
    3. 备份多个数据库:
      mysqldump -uroot -proot --databases emotional_course bbb_cxk > e:/project/SQLBackUp/userandcourse.sql          #需要注意的点和上面的一样,库名和库名之间只有空格,  还需要注意一点, 就是第一次备份数据库到a.sql文件, 
      如果第二次备份还是a.sql文件, 那么会覆盖掉之前的备份, 需要特别注意的.
    4. 备份全部数据库
      mysqldump -uroot -proot --all-databases > e:/project/SQLBackUp/userandcourse.sql      # 输入这个命令后会报错,提示信息如下:
      -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
      因为mysqldump默认是不备份事件表的,只有加了--events 才会解决,加上--events --ignore-table=mysql.events参数即可.
      mysqldump -uroot -proot --events --ignore-table=mysql.events --all-databases > e:/project/SQLBackUp/userandcourse.sql

      mysql数据库(系统自带的)会被备份, information_schema  和 performance_schema  两个数据库不会被备份.

    5. 编写shell脚本执行mysql备份
      #!/bin/bash
      number= #保留30天的备份文件
      backup_dir=/home/bneglect/SQLBackup #保存备份文件的目录
      backup_date=`date +%Y%m%d%H%M%S` #备份时间
      username=root #数据库用户
      password=root #数据库密码
      db_name=fortune #数据库名
      if [ ! -d $backup_dir ]
      then
      mkdir -p $backup_dir;
      fi
      # 判断目录是否存在, 不存在则创建
      mysqldump -u$username -p$password $db_name >
      $backup_dir/$db_name-$backup_date.sql #备份的目录及文件名
      echo "create $backup_dir/$db_name-$backup_date.sql" >> $backup_dir/backup.log #备份的日志
      count=`ls -l -crt $backup_dir/*.sql | awk '{print $9}' | wc -l` #统计目录下的SQL文件个数
      delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9}' | head -1` #第一个文件.SQL文件
      if [ $count -gt $number ]
      then
      rm -f $deffile
      echo "delete $delfile" >> $backup_dir/backup.log
      fi
      # 删除最早的备份文件, 一直保留30天的即可

      使用-ppassword会报一个warning, 提示在命令行下输入密码不安全, 其实就是想要用户Mysqldump 回车之后输入密码, 因为命令行下输入密码会暴露明文密码的. 不过不影响备份的. 如果不想报这个warning, 可以去配置mysqld.cnf 配置文件.

    6. 编辑定时任务, 让shell脚本自动执行备份数据库. 
      crontab -e 编辑计划任务, 第一次会选择文本模式, 选择3(vim.basic)即可. 
        * * * /home/bneglect/bneglect_test/mysqlBackUp.sh

      保存退出, OK了.有的服务器直接wq就可以保存退出. 有的按照------> crontab编辑文件后保存方式  Ctrl+o, 出现"file name to write.."然后回车, 然后Ctrl+x  显示"crontab: installing new crontab"成功(Ubuntu系统)

    7. 注意如果计划任务不执行, 一般从4各方面着手排查
      1. cron服务是否启动(Ubuntu上是cron, 有的系统是crond) service cron status 或 systemctl status cron 查看服务状态 service cron start 或 systemctl start cron 启动
      2. shell脚本是否有语法错误, 可以手动执行shell脚本, 如果成功执行, 就是别的原因
      3. shell脚本的路径要写成绝对路径,不能使用相对路径.
      4. 创建计划任务的用户没有执行shell脚本的权限, 举例: bneglect创建的计划任务, 但是mysqlBackUp.sh 的属主和属组可能是root(反正不是bneglect), 解决办法: (1)添加bneglect到root属组(2)修改权限为777(3)属主改成bneglect, 不过一般都是改 777

mysql 导出导入数据库(Mysqldump)备份的更多相关文章

  1. mysql导出导入数据库和表学习笔记

    一.mysql导出数据库和表 1.导出单个数据库 mysqldump [-h Host] -u Username -p [PASSWORD] db_name > db_name.sql 2.导出 ...

  2. mysql导出导入数据库表

    1.下载数据库 mysqldump db_name  -h 192.168.5.162 -uroot -p > /var/www/db_name.sql(这个可以自定义) 2,下载数据库中的某个 ...

  3. Mysql导出导入数据库

    1. 导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p database > database.sql 2. 导入数 ...

  4. mysql 导出导入数据库中所有数据

    导出数据库所有数据 >mysqldump -uroot -proot -all hzgajzyz>e:/hzgajzyz.sql 导入数据库所有数据 >source e:/hzgaj ...

  5. mysql 导出导入数据库

    导入mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql导出 mysqldum ...

  6. mysql导出整个数据库

    mysql导出整个数据库 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql mysqldump - ...

  7. 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

    MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...

  8. mysql进阶(十三)命令行导出导入数据库

    MySQL命令行导出导入数据库 MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd D:\Program Files\ ...

  9. mysql导出导入所有数据库

    导出所有数据库 mysqldump -uroot -p123456 --all-databases > /home/aa.sql 导入所有数据库 mysql -uroot -p123456 &l ...

随机推荐

  1. 石子合并2——区间DP【洛谷P1880题解】

    [区间dp让人头痛……还是要多写些题目练手,抽空写篇博客总结一下] 这题区间dp入门题,理解区间dp或者练手都很妙 ——题目链接—— (或者直接看下面) 题面 在一个圆形操场的四周摆放N堆石子,现要将 ...

  2. python 高阶函数 lamdad reduce map

    ## def use_filer(l):## # 过滤偶数# rest = filter(lambda n: n % 2 != 0, l)# return rest## if __name__ == ...

  3. MySQ-表关系-外键-修改表结构-复制表-03

    目录 前言 不合理的表结构(案例) 带来的问题 如何解决问题? 如何确定表关系? 表关系 一对多 多对多 一对一 应用场景 判断表关系最简单的语法 三种关系常见案例 如何建立表关系? 外键 forei ...

  4. 小米soar

    SOAR 简介 SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能优化与改写工具,由小米运维 DBA 团队出品 SOAR 体系架构 SOAR主要由语法解析器,集成 ...

  5. 网站QQ客服链接代码

    个人QQ客服代码 <a href="tencent://message/?uin=QQ号码">在线咨询</a> 企业QQ客服代码 <a href=&q ...

  6. Codeforces1263D-Secret Passwords

    题意 给n个字符串,两个字符串之间如果有相同的字符,那么两个就等价,等价关系可以传递,问最后有多少个等价类. 分析 考虑并查集或者dfs联通块,如果是并查集的话,对于当前字符串的某个字符,肯定要和这个 ...

  7. 推荐系统遇上深度学习(十)--GBDT+LR融合方案实战

    推荐系统遇上深度学习(十)--GBDT+LR融合方案实战 0.8012018.05.19 16:17:18字数 2068阅读 22568 推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模 ...

  8. ccpc湘潭邀请赛 Partial Sum

    选定最多m的区间,使区间和的绝对值最大.但是左右端点不能重复选取 首先涉及到区间和的问题,就应该想到用前缀和去优化 这里对前缀和排序 然后贪心的去选取最大.次大 (比赛的时候脑子堵的很,没想出来 可惜 ...

  9. gflags 编译动态库

    gflags 编译动态库 这里涉及到gflags的安装,原来使用 sudo apt-get install libgflags-dev 但是后面有人在环境中下载安装了libgflags的安装包,解压后 ...

  10. luogu题解 P2860[USACO冗余路径Redundant Paths] 缩点+桥

    题目链接 https://www.luogu.org/problemnew/show/P2860 https://www.lydsy.com/JudgeOnline/problem.php?id=17 ...