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

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. elementUI 学习入门之 input 输入框

    基础用法 <el-input v-model="input1" palcehoder="请输入"></el-input> var Mai ...

  2. [转]如何在 JS 代码中消灭 for 循环

    一,用好 filter,map,和其它 ES6 新增的高阶遍历函数 二,理解和熟练使用 reduce 三,用递归代替循环(可以break!) 四,使用高阶函数遍历数组时可能遇到的陷阱 五,死磕到底,T ...

  3. Openstack关于Regions和Availability Zones

    在AWS中有Region和Availability Zones的概念,并且在openstack中也实现了两者,只是不太容易看出来. 此文主要介绍他们的概念和关系,以及在openstack中的实现. 如 ...

  4. 01-学前入门.Net 能做什么

    桌面应用程序          Winfrom(.Net开发的桌面应用程序叫Winfrom应用程序) Internet应用程序   ASP.NET (.Net开发的Internet应用程序叫ASP.N ...

  5. 【BZOJ 3235】 3235: [Ahoi2013]好方的蛇 (单调栈+容斥原理)

    3235: [Ahoi2013]好方的蛇 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 187  Solved: 95 Description 有一天, ...

  6. java 抽象类 接口 区别

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 接口 里面 都是抽象方法. 接口里面的 字段 都是 public static fina ...

  7. [原]Android Studio使用极光推送出现at cn.jpush.android.service.ServiceInterface.a(Unknown Source) 已解决

  8. nginx+php-fpm 配置和错误总结

    <strong>空白页面:</strong>需要这个参数: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_scrip ...

  9. SQL Server2008无法修改表结构?

    之前一直用SQL Server2005的数据库,最近升级到2008之后发现修改不了表结构,提示: 根据提示,取消“阻止保存要求重新创建表的更改”后就可以了. 具体操作:SQL Server Manag ...

  10. 解决Visual Studio 2015创建工程时的“DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' failed to install.”错误

    前段时间发布了Visual Studio2015,在后,发现创建Asp.Net工程和时,出现了"DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' f ...