-
MySQL数据备份还原方式总结:
一、将数据导入到指定的数据库
第一种导入方式:
-
(linux下和Windows 下语法是一样的,只是路径的书写方式不同而已)
1、创建一个空数据库
2、进入MySQL安装目录bin下
3、导入命令 mysql -uroot –p密码 数据库名 < 要导入的表数据(d:bs.sql)(将选定的表导入到指定的数据库)
mysql -uroot –padmin databaseName <d:dump.sql (window)
-
mysql -uroot –padmin databaseName < /dump.sql (Linux)
- (将备份的整个数据库导入)
4、导入命令: mysql -u用户名 -p密码 < 要导入的数据库数据
mysql -uroot -padmin < d:dump.sql (window)
mysql -uroot -padmin < /dump.sql (linux)
(将备份出来的数据库导入,这里没有写数据库名,也可以写但要求是要写同样的名称)
第二种使用Load Data infile 命令导入:
(这里的格式是在 linux下的在window 下修改路劲的写法就可以)
// 要导入的数据
Load data infile '/tmp/dump.txt'
// 数据要导入到那个 数据库的那个表, 前提是要有这个表,否则会报 表不存在错误!
into table linuxtest1.test
// fields (属性 字段) terminated (终止,结束) 属性之间的分隔符 为逗号
fields terminated by ','
// optionally(需要,可选择 ) enclosed(封闭) 也就是字符串使用引号
optionally enclosed by ' " '
// 换行符结束一行
lines terminated by '
' ;
第三种导入方式即 使用source命令:
-
Mysql> Use databasename;
Mysql>Source d:dump.sql
导入成功之后:
-
*** 使用第一种方式比较好,推荐使用第一种方式
-
二、从数据库导出数据
-
第一种方式使用 mysqldump工具:
-
(linux 和window 下是同样的语法只是路径的写法不同而已)
1、导出mysql 中的数据库 databaseName
(1)、进入mysql的安装目录 …….bin
(2)、mysqldump –hlocalhost –uroot –p databaseName >d:dump.sql (window)
mysqldump –hlocalhost –uroot –pdatabaseName >/dump.sql (linux)
-
(3)、mysqldump -hlocalhost -uroot -padmin --databases databaseName > d:dump.sql (2 3 是一样的)
- 2、导出数据库服务器上的所有数据库
- mysqldump -hlocalhost -uroot -padmin --all-databases > dump.sql
-
3、导出mysql数据库databaseName的tb_user表及数据
进入mysql安装目录C:Program FilesMySQLMySQLServer 5.5in>
mysqldump –hlocalhost –uroot –padmin databaseName tb_user > d:dump.sql
mysqldump -hlocalhost -uroot -padmin databaseName tb_user --result-file=dump.sql
( 这样写是为了在windows下方便)
-
4、导出mysql数据库databaseName的结构未实现
进入mysql安装目录C:ProgramFilesMySQLMySQL Server 5.5in>
mysqldump –hlocalhost –uroot –padmin databaseName -add-drop-table>d:dump.sql
-
5、mysql对导入文件大小有限制,最大为2M,可修改配置
在PHP.ini中修改参数:memory_limit=128M,upload_max_filesize=2M,post_max_size=8M
修改upload_max_filesize=200M;memory_limit=250M,post_max_size=2000M
-
第二种方式 使用 : select into outfile :SQL命令如下
-
(这种格式也是在linux下,window修改路劲书写方式)
- // 将你选中的数据导出到这个指定的目录下
-
select * into outfile '/tmp/bump.txt'
- // 属性使用 逗号分开
-
fields terminated by ','
- //
-
optionally enclosed by ' " '
- // 一行结束的标志位换行符
-
lines terminated by ' '
-
// 这是你要导出的数据库表
-
from linuxtest.test2 ;
-
三、两种导入导出方式的比较:
-
使用select into outfile 以及load data infile 这种方式比 导出 .sql这种文件更加紧凑,而且速度也更快!