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. git安装配置相关

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius ...

  2. HDU3068 最长回文(manacher模板

    给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一 ...

  3. Python 常用单词

    Python常用单词(英文好的人自动忽略) 单词 发音 翻译 作用 print 普润特 打印 显示我们想要查看的内容 input 因普特 输入 获取用户输入的一些内容 int 印特 整型 将有引号的数 ...

  4. Jmeter之梯度式加压(Stepping Thread Group)

    1.添加线程组(Stepping Thread Group) 2.设置数据 学习参考网址:https://www.cnblogs.com/imyalost/p/7658816.html   这个大大的 ...

  5. 安装consul-client+registrator

    安装registrator 下载镜像这里必须要注意:registrator的lastest版本已经2年没更新了,他的最新主板本是master,一定要注意,因为旧的版本无法发现跟自己不是同一个网络的容器 ...

  6. Ef数据GroupBy多字段查询Vb.net与c#参考

    Dim g = lst.Data.GroupBy(Function(T) New With { Key T.mName, Key T.mUnit, Key T.mPrice }).Select(Fun ...

  7. C#Linq之求和,平均值,最大值,最小值

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  8. Linux Too many open files

    Linux Too many open files 查看系统资源限制信息: sudo -s -u root -H id sudo -s lsof | awk '{ print $2 " &q ...

  9. 豆瓣网post 爬取带验证码

    # -*- coding: utf- -*- import scrapy import requests from ..bao.jiema import get_number fromdata = { ...

  10. canva绘制圆角矩形

    在做组态的时候,需要支持矩形圆角格式,但是因为canvas本身不带有圆角矩形,需要自行算出坐标进行绘制 方案一.统一圆角 <!DOCTYPE html> <html> < ...