如何用mysql命令备份和恢复

如何用mysql命令备份和恢复,第1张

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

一、备份命令

1、备份MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword databasename>backupfile.sql

2、备份MySQL数据库为带删除表的格式

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-–add-drop-table-uusername-ppassword databasename>backupfile.sql

3、直接将MySQL数据库压缩备份

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword databasename|gzip>backupfile.sql.gz

4、备份MySQL数据库某个(些)表

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword databasename specific_table1 specific_table2>backupfile.sql

5、同时备份多个MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-hhostname-uusername-ppassword –databases databasename1 databasename2 databasename3>multibackupfile.sql

6、仅仅备份数据库结构

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump –no-data –databases databasename1 databasename2 databasename3>structurebackupfile.sql

7、备份服务器上所有数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump –all-databases>allbackupfile.sql

二、还原命令

1、还原MySQL数据库的命令

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysql-hhostname-uusername-ppassword databasename<backupfile.sql

2、还原压缩的MySQL数据库

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->gunzip<backupfile.sql.gz|mysql-uusername-ppassword databasename

3、将数据库转移到新服务器

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

-->mysqldump-uusername-ppassword databasename|mysql –host=*.*.*.*-C databasename

总结

做好数据备份和还原,定好合适的备份策略,这是一个DBA所做事情的一小部分,万事开头难,就从现在开始吧!

MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。

1.Win32下MySQL的备份与还原

1.1 备份

开始菜单 | 运行 | cmd |利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。

1.2 还原

进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。

2.Linux下MySQL的备份与还原

2.1 备份

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)

[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。

2.2 还原

法一:

[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。

法二:

[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)

[root@localhost mysql]# mysql -u root -p voice<voice.sql,输入密码即可。

什么是事务?

事务是逻辑上的一组 *** 作,组成这组 *** 作的各个单元,要不全都成功要不全都失败,这个特性就是事务

注意:mysql数据支持事务,但是要求必须是innoDB存储引擎

解决这个问题:

mysql的事务解决这个问题,因为mysql的事务特性,要求这组 *** 作,要不全都成功,要不全都失败,这样就避免了某个 *** 作成功某个 *** 作失败。利于数据的安全

如何使用:

(1)在执行sql语句之前,我们要开启事务 start transaction

(2)正常执行我们的sql语句

(3)当sql语句执行完毕,存在两种情况:

1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ

2,某些sql语句失败,我们执行rollback(回滚),将对数据库 *** 作赶紧撤销

(注意:mysql数据支持事务,但是要求必须是innoDB存储引擎)

mysql>create table bank(name varchar(20),money decimal(5,1))engine=innodb defau

lt charset=utf8

mysql>inset into bank values('shaotuo',1000),('laohu',5000)

mysql>select*from bank

+---------+--------+

| name | money |

+---------+--------+

| shaotuo | 1000.0 |

| laohu | 5000.0 |

+---------+--------+

------没有成功“回滚”执行rollback

mysql>start transaction//开启事务

Query OK, 0 rows affected (0.00 sec)

mysql>update bank set money=money+500 where name='shaotuo'

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql>update bank set moey=money-500 where name='laohu'

ERROR 1054 (42S22): Unknown column 'moey' in 'field list'

mysql>rollback//只要有一个不成功,执行rollback *** 作

Query OK, 0 rows affected (0.01 sec)

mysql>select*from bank

+---------+--------+

| name | money |

+---------+--------+

| shaotuo | 1000.0 |

| laohu | 5000.0 |

+---------+--------+

------成功之后 进行commit *** 作

mysql>start transaction//开启事务

Query OK, 0 rows affected (0.00 sec)

mysql>update bank set money=money+500 where name='shaotuo'

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql>update bank set money=money-500 where name='laohu'

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql>commit//两个都成功后执行commit(只要不执行commit,sql语句不会对真实的数据库造成影响)

Query OK, 0 rows affected (0.05 sec)

mysql>select*from bank

+---------+--------+

| name | money |

+---------+--------+

| shaotuo | 1500.0 |

| laohu | 4500.0 |

+---------+--------+


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7475096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存