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

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. Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质

    Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17所示,石板的表面本来是粗糙的, ...

  2. POJ 1222【异或高斯消元|二进制状态枚举】

    题目链接:[http://poj.org/problem?id=1222] 题意:Light Out,给出一个5 * 6的0,1矩阵,0表示灯熄灭,反之为灯亮.输出一种方案,使得所有的等都被熄灭. 题 ...

  3. 【BZOJ 3561】 3561: DZY Loves Math VI (莫比乌斯,均摊log)

    3561: DZY Loves Math VI Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 205  Solved: 141 Description ...

  4. POJ3744 Scout YYF I 概率DP+矩阵快速幂

    http://poj.org/problem?id=3744 题意:一条路,起点为1,有概率p走一步,概率1-p跳过一格(不走中间格的走两步),有n个点不能走,问到达终点(即最后一个坏点后)不踩坏点的 ...

  5. [Codeforces #172] Tutorial

    Link: Codeforces #172 传送门 A: 一眼看上去分两类就可以了 1.每个矩形只有两条边相交,重合的形状为菱形 2.每个矩形四条边都有相交 对于情况1答案为$h*h/sin(a)$ ...

  6. django之cookie、session和ajax

    1 Cookie cookie是什么? 保存在客户端浏览器上的键值对   {k:v} cookie依附在请求头或响应头中出现 发送请求时,会自动携带自己网站的cookie 应用: 实现登录 投票 1. ...

  7. Mysql -- 设置中国时区时间

       Mysql -- 设置中国时区时间 查看mysql的时区设置 mysql> show variables like '%time_zone%'; 修改mysql的时区设置, 注:mysql ...

  8. Codeforces Round #245 (Div. 2) B. Balls Game 并查集

    B. Balls Game Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/430/problem ...

  9. 在VIEW引入CSS、JS文件

    外联 CSS: <?= Html::cssFile('@web/css/ie5.css', ['condition' => 'IE 5']) ?> generates <!-- ...

  10. MyISAM重启之后的一次血泪教训

    最近经历了一次MyISAM重启的血泪教训,小小的故障历经3个小时才全部解决完毕,特此铭记一下,以后坚决防止在同一个地方跌倒两次. 事情的过程: 某日早7点接到几条主库报警,给值班组打电话后得到的消息是 ...