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

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. 在 Windows 上进行 Laravel Homestead 安装、配置及测试

    软件环境:在 Windows 7 64位 上基于 VirtualBox 5.2.12 + Vagrant 2.1.1 使用 Laravel Homestead. 1.准备 先下载VirtualBox- ...

  2. 牛客网 牛客小白月赛12 B.华华教月月做数学-A^B mod P-快速幂+快速乘

    链接:https://ac.nowcoder.com/acm/contest/392/B来源:牛客网 华华教月月做数学 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其 ...

  3. powershell 获取 CPU 物理 / 逻辑核心数

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/   获取 CPU 逻辑核心数的方法为:总逻辑核心数 = 物理核心数 * 每核逻辑核心数   其中 ...

  4. 洛谷P1345 [USACO5.4]奶牛的电信 [最小割]

    题目传送门 奶牛的电信 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,..., ...

  5. git 免密码配置

    1.cd ~/ 2.touch .git-credentials   (注意文件名前面有个  ”点”) 3.打开刚刚创建的文件,写入 https://username:password@github. ...

  6. 【BZOJ 4631】4631: 踩气球 (线段树)

    4631: 踩气球 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 316  Solved: 153 Description 六一儿童节到了, SHUX ...

  7. 【BZOJ 1016】 1016: [JSOI2008]最小生成树计数 (DFS|矩阵树定理)

    1016: [JSOI2008]最小生成树计数 Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树 ...

  8. 【51Nod 1363】最小公倍数之和

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1363 \[ \begin{aligned} &\sum_{i=1 ...

  9. BZOJ 3238: [Ahoi2013]差异 后缀自动机 树形dp

    http://www.lydsy.com/JudgeOnline/problem.php?id=3238 就算是全局变量,也不要忘记,初始化(吐血). 长得一副lca样,没想到是个树形dp(小丫头还有 ...

  10. 【贪心大水题】BZOJ3410-[Usaco2009 Dec]Selfish Grazing 自私的食草者

    [题目大意] 给出n个区间,问最多选取多少个区间使得它们互相不重叠. [思路] 水题quq改善心情用.按照右端点大小排序,每次更新上一次的右端点,如果当前左端点大于上次右端点可取. #include& ...