1 mysqldump命令备份mysqldump命令备份将数据库中的数据备份成一个文本文件。mysqldump命令备份的文件后缀名一般为".sql",其他后缀名也可以。 mysqldump命令通过表结构生成create table语句;将表中数据生成insert语句。 注:mysqldump命令实在shell环境下使用的。非数据库环境下的命令。
1.1 备份数据表备份表生成的备份脚本是不包含create table语句的。 基本语法: mysqldump -u 用户名 -p [密码] 数据库 表1 表2 ... > 脚本名称 例:root用户备份test数据库下的student表。 mysqldump -u root -p test student > D:\student.sql
1.2 备份数据库使用--databases选项用于备份数据库。 基本语法: mysqldump -u用户名 -p[密码] --databases 库1 库2 ... > 脚本名称 例:使用root用户备份test数据库和mysql数据库。 mysqldump -u root -p --databases test mysql >D:\backup.sql
1.3 备份所有数据库使用--all-databases选项用于备份所有数据库。 基本语法: mysqldump -u 用户名 -p [密码] --all-databases ... > 脚本名称 例:使用root用户备份当前连接的所有数据库。 mysqldump -u root -p --all-databases > D:\all.sql
1.4 数据还原使用mysql命令来还原备份的数据。 基本语法: mysql -u 用户名 -p 密码 [数据库] < 备份脚本
1.5 通过MySQL存储文件备份对于MyISAM引擎的数据库,可以通过复制MySQL的存储文件来实现备份数据库。使用这种方式备份数据库请保证数据库主版本号相同。 在Linux使用这种方式备份数据需要注意文件权限。
1.6 读锁在备份期间,不允许写数据库操作。此时应当将数据库读锁,禁止写入操作。 只需要为mysqldump命令添加 -l 选项,即可。
1.7 刷新日志若使用了日志,特别是二进制日志。在备份之后,最好重新生成最新的二进制数据文件。使用-F可以使命令自动刷新日志。 例:备份test数据库 mysqldump -uroot -p test -l -F > temp.sql
2 数据库迁移数据库迁移即将数据库从一个系统移动到另一个系统上。 数据库迁移大致分为三类:
对于相同版本的MySQL数据库,使用MySQL备份和还原技术即可完成数据库迁移。 例:使用mysqldump命令备份并使用mysql命令在另一个数据库中还原。 mysqldump -h host1 -u user1 -p password1 -all-database | mysql -h host2 -u user2 -p password2
对于不同的数据库,由于SQL标准定义的区别,使用如上类似方法可能会导致错误。可以选择使用工具完成这些工作。
3 表的导入和导出3.1 用SELECT...INTO OUTFILE导出文本文件语法: SELECT [列名] FROM 表 [WHERE 语句] INTO OUTFILE '目标文件' [选项]; 说明: SELECT子句用于查询数据。 INTO OUTFILE用于导出数据。 目标文件为导出数据的备份文件。 选项: 字段选项: fields terminated by ’字符串’ :设置字段分隔符,默认为’\t’。 fields enclosed by ’字符’ :设置括起字段的字符。默认不使用任何字符。 fields optionally enclosed by ’字符’ :设置字符串括上CHAR,VARCHAR,TEXT等字符型字段。默认不使用任何字符。 fields escaped by ’字符’ :设置转义字符,默认值’/’。 行选项: lines starting by ‘字符串’ :设置每行开头的字符,默认不使用任何字符。 lines terminated by ‘字符串’ :设置每行结束的字符,默认不使用任何字符。
例:导出test库下student表的记录。其中,字段之间用“,”隔开,字符型数据用双引号括起来。每条记录以“>”开头。 SELECT * FROM .student INTO OUTFILE 'D:\student1.txt' FIELDS TERMINATED BY '\,' OPTIONALLY ENCLOSED BY '\' LINES STARTING BY '\>' TERMINATED BY '\r\n';
3.2 用mysqldump命令导出文本文件基本语法: mysqld -u 用户名 -p 密码 -T 目标目录 数据库 表 [选项] 说明: -T选项的参数是导出文件的路径。 选项: --fields-terminated-by=字符串 :设置字段分隔符。 --fields-enclosed-by=字符 :设置字符串括上字段的值。 --fields-optionally-enclosed-by=字符 :设置字符串括上字段的值。只能用于CHAR,VERCHAR和TEXT类型的字段。 --fields-escaped-by=字符 :设置转义字符。 --lines-terminated-by=字符串 :行记录分隔符。
例:导出test库下student表的记录。其中字段之间用“,”隔开,字符型数据用双引号括起来。 mysqldump -u root -p111 -T d:\test student --fields-terminated-by =, --fields-optionally-enclosed-by =\"
用mysqldump命令导出XML格式的文件 基本语法: mysqldump -u 用户名 -p 密码 --xml 数据库 表 > 目标文件 说明:--xml表示导出为xml格式的文件,也可以使用-X代替--xml。 例:导出test库下student表的记录为xml文件。 mysqldump -u root -p111 --xml test student > d:\name.xml;
3.3 用mysql命令导出文本文件mysql命令可以用于登录MySQL服务器,备份数据,也可用于导出文本文件。 基本语法: mysql -u 用户 -p 密码 -e "select语句" 数据库 > 目标文件 说明:-e选项的参数为select语句,用于查找数据。 例:导出test数据库下的student表 mysql -u root -p111 -e "SELECT * FROM student" test > D:/student2.txt
用mysql命令导出XML与HTML格式的文件 导出xml基本语法: mysql -u 用户名 -p 密码 --xml -e "select语句" 数据库 表 > 目标文件 说明:--xml表示导出为xml格式的文件,也可以使用-X代替--xml。
导出html基本语法: mysql -u 用户名 -p 密码 --html -e "select语句" 数据库 表 > 目标文件
说明:--html表示导出为html格式的文件,也可以使用-H代替--html。 |