mysql备份语句
备份单个数据库
mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql
其中:
-
dbname参数表示数据库的名称;
-
table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
-
BackupName.sql参数表设计备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件;
备份多个数据库
mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql
备份所有数据库
mysqldump -u username -p -all-databases > BackupName.sql
备份工具mysqlhotcopy
mysqlhotcopy与mysqldump比较
- 前者是一个快速文件意义上的COPY,后者是一个数据库端的SQL语句集合。
- 前者只能运行在数据库目录所在的机器上,后者可以用在远程客户端,不过备份的文件还是保存在服务器上。
- 相同的地方都是在线执行 LOCK TABLES 以及 UNLOCK TABLES
- 前者恢复只需要COPY备份文件到源目录覆盖即可,后者需要导入SQL文件到原库中。(source 或 mysql < bakfile.sql)
- 前者只适用于 MyISAM 引擎,而后则则可同时使用于MyISAM引擎和InodDB引擎
- 前者在使用前必须安装perl-DBD-mysql包,而后者则不需要.
使用mysqlhotcopy需要先安装perl-DBI和DBD-mysql
下载地址:http://dev.mysql.com/downloads/dbi.html
语句
mysqlhotcopy [option] dbname1 dbname2 backupDir/
其中:
-
dbname:数据库名称;
-
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