为了有效防止数据丢失,并将损失降到最低,应对数据库服务器做维护。数据库维护,包括数据备份,还原,导出和导入操作。

1. MySQL数据库备份

所谓数据库维护,主要包含备份数据,还原数据和数据库迁移,对于MySQL来说,还包括数据库对象表的导出和导入。

1.1 通过复制数据文件实现数据备份

造成数据损失的原因很多,主要包含如下几个方面:

a. 存储介质故障:保存数据库文件的磁盘设备损坏,用户没有数据库备份导致数据彻底丢失。

b. 用户的错误操作:如误删了某些重要数据,甚至整个数据库。

c. 服务器的彻底瘫痪,系统需要重建。

由于MySQL服务器中的数据文件是基于磁盘的文本文件,所以最简单,最直接的备份操作就是数据库文件直接复制出来。该种方式对InnoDB存储引擎的表不合适,只适合存储引擎为MyISAM的表。

1.2 通过命令mysqldump实现数据备份

有三种形式:备份一个数据库,备份多个数据库,备份所有数据库。

1.2.1 备份一个数据库

mysqldump -u username -p dbname
table1 table2...tablen > backupname.sql

示例如下:

备份数据库company下的表t_dept;

mysqldump -u root -p company t_dept > d:\t_dept_back.sql

1.2.2 备份多个数据库

mysqldump -u username -p --databases dbname1 dbname2 ... dbname3 > backupname.sql

示例如下:

备份数据库company数据库和companynew数据库:

mysqldump -u root -p --databases company companynew> d:\database_company_back.sql

1.2.3 备份所有数据库

mysqldump -u username -p --all  > backupname.sql

示例如下:

备份所有数据库:

mysqldump -u root -p --all  > c:\all_database_back.sql

2. MySQL数据还原

2.1 通过复制数据文件实现数据还原

在通过复制数据文件这种方式实现数据还原时,必须保证两个MySQL数据库的主版本号一致,因为只有MySQL数据库主版本号一致时,才能保证两个MySQL数据库的文件类型是相同的。由于通过复制数据文件实现数据备份时,对存储引擎类型为I:nnoDB的表不可用,仅对存储引擎为MyISAM类型的表有效。因此通过复制数据文件实现数据还原时,也只对存储类型为MyISAM类型的表有效。

注意:MySQL数据库服务器的版本号,第一个数字表示主版本号。

2.2 通过命令mysql实现数据还原

mysqldump -u -username -p [dbname] < backname.sql

示例如下:

还原数据库company中的表t_dept:

mysqldump -u -root -p t_dept < t_dept_back.sql

3.MySQL数据库表导出到文本文件

3.1 执行SELECT ... INTO OUTFILE 实现导出到文本文件

SELECT [file_name] FROM table_name [where condition] INTO OUTFILE 'file_name' [OPTION]

示例如下:

实现将表t_dept里的所有数据导出到文件t_dept里:

SELECT * FROM t_dept INTO OUTFILE 'c:/t_dept_1.txt'  FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>'  TERMINATED BY '\r\n';

上述实现了将表t_dept里的所有数据导出到文件t_dept_1.txt文件里,而且还设置了相应的显示格式。

3.2 执行命令mysqldump实现导出到文本文件

mysqldump -u root -p Password -T file_directory dbname table_name[option];

示例如下:

将相应的数据导出到文本文件t_dept.txt里:

mysqldump -u root -proot -T c:\company t_dept;

上述实现将表t_dept里的所有数据导出到文件t_dept里。

3.3 执行命令mysql实现导出到文本文件

mysql -u root -p Password -e"SELECT [file_name] FROM table_name " dbname > file_name;

示例如下:

mysql -u root -p root -e"SELECT * FROM t_dept"  company> c:/t_dept.txt;

4. MySQL实现文本文件导入到数据库表

4.1 执行"LOAD DATA INFILE"命令实现文本文件导入到数据库表

LOAD DATA[LOCAL] INFILE file_name INTO TABLE table_name [OPTION];

示例如下:

LOAD DATA INFILE 'c:/t_dept.txt' INTO TABLE t_dept FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' TERMINATED BY '\r\n';

4.1 执行命令mysqlimport实现导入文本文件

mysqlimport -u root -p Password[--LOCAL] dbname file_name[OPTION]

示例如下:

mysqlimport -u root -p root company c:t_dept.txt FIELDS TERMINATED BY '\.' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\>' TERMINATED BY '\r\n';

5. 数据库迁移

5.1 相同版本的MySQL数据库之间的迁移

该种数据库迁移最容易实现。

5.2 不同版本的MySQL数据库之间的迁移

两种方式:低版本向高版本和高版本向低版本。

5.3 不同数据库之间的迁移

由于不同数据库之前的差异性,没有普遍适用的办法。

6. 数据性能优化

(备注):

备注1:

备份和还原的备注:如果所有的操作均是对远程数据库的操作,则在-u前面加-h ip即可。如需要操作192.168.1.101数据库的数据,写法是:

mysql -h 192.168.1.101 -u root -p -e"SELECT * FROM t_dept"  company> c:/t_dept.txt;

备注2:

使用命令mysqldump进行导出数据到本地磁盘,执行该命令的时候不要进入mysql的控制台再使用,这样会报outfiledisabled错误。而是直接使用MYSQL/bin目录下的mysqldump.exe,通过windows的命令进入。

mysql数据库维护(备份和还原)和性能提高的更多相关文章

  1. day 50 MySQL数据备份与还原(mysqldump)

      MySQL数据备份与还原(mysqldump)   一 mysqldump指令实现数据备份.mysql指令实现数据还原 经常有朋友问我,DBA到底是做什么的,百科上说:数据库管理员(Databas ...

  2. MySQL的备份和还原

    MySQL的备份和还原 备份:副本    RAID1,RAID10:保证硬件损坏而不会业务中止:        DROP TABLE mydb.tb1; 备份类型:        热备份.温备份和冷备 ...

  3. MySQL学习——备份和还原

    MySQL学习——备份和还原 摘要:本文主要学习了如何备份和还原数据库. 部分内容来自以下博客: https://www.cnblogs.com/chenmh/p/5300370.html 常用命令 ...

  4. 转 MySQL 数据备份与还原

    MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html   一.数据备份 1.使用mysqldump命令备份 mysqldum ...

  5. Linux下MySQL的备份与还原

    Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...

  6. Mysql数据库备份和还原常用的命令

    Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...

  7. [转]MySQL数据库备份和还原的常用命令小结

    MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...

  8. mysql数据备份和还原命令

    mysql数据库备份和还原   备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfil ...

  9. MySQL的备份与还原

    原文:MySQL的备份与还原 MySQL备份和还原,都是利用mysqldump.mysql和source命令来完成的. 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | c ...

随机推荐

  1. 通过 JS 实现错误页面在指定的时间跳到主页

    通过 JS 实现错误页面在指定的时间跳到主页 <!DOCTYPE html> <html> <head> <title>浏览器对象</title& ...

  2. ftp缓存信息

    using System.Collections.Generic; using NewTempo.Ftp; using System.IO; using NshowAdClient.NshowAdSe ...

  3. 洛谷——P2071 座位安排 seat.cpp/c/pas

    P2071 座位安排 seat.cpp/c/pas 题目背景 公元二零一四年四月十七日,小明参加了省赛,在一路上,他遇到了许多问题,请你帮他解决. 题目描述 已知车上有N排座位,有N*2个人参加省赛, ...

  4. java8新特性——接口中的静态方法与默认方法

    以前我们知道,接口中的方法必须时抽象方法,而从 java8 开始接口中也可以有方法的实现了,叫做默认方法. 一 .默认方法(default修饰) 在 java8 中,因为存在函数式接口,一个接口中只能 ...

  5. HDU 5952 [DFS]

    题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=5952] 题意:给出一张无向图,然后判断这张图中一共有多少个不同的大小为S的完全图,并且保证每个点的度 ...

  6. 山东省第四届省赛 E-Mountain Subsequences

    Description Coco is a beautiful ACMer girl living in a very beautiful mountain. There are many trees ...

  7. 【UOJ #206】【APIO 2016】Gap

    http://uoj.ac/problem/206 对于T=1,直接从两端往中间跳可以遍历所有的点. 对于T=2,先求出最小值a和最大值b,由鸽巢原理,答案一定不小于\(\frac{b-a}{N-1} ...

  8. mof提权原理及实现

    关于 mof 提权的原理其实很简单,就是利用了c:/windows/system32/wbem/mof/目录下的 nullevt.mof 文件,每分钟都会在一个特定的时间去执行一次的特性,来写入我们的 ...

  9. python3-开发进阶Flask的基础(4)

    今日内容: 上下文管理:LocalProxy对象 上下文管理:  请求上下文: request/session   app上下文:app/g 第三方组件:wtforms       1.使用      ...

  10. [转]软件版本号扫盲——Beta RC Preview release等

      1.软件版本阶段说明 *Alpha版:此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改. *Beta版:该版本相对于α版 ...