MySQL备份与还原,mysqlcopy介绍

mysql备份语句

备份单个数据库

mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

其中:

  1. dbname参数表示数据库的名称;

  2. table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;

  3. BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;

备份多个数据库

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

备份所有数据库

mysqldump -u username -p -all-databases > BackupName.sql

备份工具mysqlhotcopy

mysqlhotcopy与mysqldump比较

  1. 前者是一个快速文件意义上的COPY,后者是一个数据库端的SQL语句集合。
  2. 前者只能运行在数据库目录所在的机器上,后者可以用在远程客户端,不过备份的文件还是保存在服务器上。
  3. 相同的地方都是在线执行 LOCK TABLES 以及 UNLOCK TABLES
  4. 前者恢复只需要COPY备份文件到源目录覆盖即可,后者需要导入SQL文件到原库中。(source 或 mysql < bakfile.sql)
  5. 前者只适用于 MyISAM 引擎,而后则则可同时使用于MyISAM引擎和InodDB引擎
  6. 前者在使用前必须安装perl-DBD-mysql包,而后者则不需要.

使用mysqlhotcopy需要先安装perl-DBI和DBD-mysql

下载地址:http://dev.mysql.com/downloads/dbi.html

语句

mysqlhotcopy [option] dbname1 dbname2 backupDir/

其中:

  1. dbname:数据库名称;

  2. backupDir:备份到哪个文件夹下;

常用选项:

  • --help:查看mysqlhotcopy帮助;

  • --allowold:如果备份目录下存在相同的备份文件,将旧的备份文件加上_old;

  • --keepold:如果备份目录下存在相同的备份文件,不删除旧的备份文件,而是将旧的文件更名;

  • --flushlog:本次辈分之后,将对数据库的更新记录到日志中;

  • --noindices:只备份数据文件,不备份索引文件;

  • --user=用户名:用来指定用户名,可以用-u代替;

  • --password=密码:用来指定密码,可以用-p代替。使用-p时,密码与-p之间没有空格;

  • --port=端口号:用来指定访问端口,可以用-P代替;

  • --socket=socket文件:用来指定socket文件,可以用-S代替;

mysql还原语句

mysql -u root -p [dbname] < backup.sq

你可能感兴趣的:(SQL,Linux)