一、Mysql数据库备份指令格式:
mysqlmp -h主机名 -P端口 -u用户名 -p密码 (–database) 数据库名 > 文件名.sql
注:直接cmd执行该指令即可,不需要先mysql -u root -p链接数据库
1、备份MySQL数据库的命令
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql
2、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql
二、数据库还原有三种方式:source命令、mysql、gunzip命令
1、source 命令
进入mysql数据库控制台,
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
2. mysql数据库备份和还原
MySQL数据库备份与还原
备份和恢复数据
生成SQL脚本
在控制台使用mysqlmp命令可以用来生成指定数据库的脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创建数据库的语句!所以在恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。
mysqlmp –u用户名 –p密码 数据库名>生成的脚本文件路径
现在可以在C盘下找到mydb1.sql文件了!
注意,mysqlmp命令是在Windows控制台下执行,无需登录mysql!!!
执行SQL脚本
执行SQL脚本需要登录mysql,然后进入指定数据库,才可以执行SQL脚本!!!
执行SQL脚本不只是用来恢复数据库,也可以在平时编写SQL脚本,然后使用执行SQL 脚本来操作数据库!大家都知道,在黑屏下编写SQL语句时,就算发现了错误,可能也不能修改了。所以我建议大家使用脚本文件来编写SQL代码,然后执行之!
SOURCE C:\mydb1.sql
注意,在执行脚本时需要先行核查当前数据库中的表是否与脚本文件中的语句有冲突!例如在脚本文件中存在create table a的语句,而当前数据库中已经存在了a表,那么就会出错!
还可以通过下面的方式来执行脚本文件:
mysql -uroot -p123 mydb1<c:\mydb1.sql
mysql –u用户名 –p密码 数据库<要执行脚本文件路径
这种方式无需登录mysql!
3. mysql 怎么恢复备份的数据库
把备份的数据库导入?
mysql -u root --password=你自己的密码 原库<备份出来的数据库
比如
mysql -u root --password=abcdef VSM<VSM_BAK
注意,此时备份文件在执行命令时当前所处的路径,如果不是一个路径后面需要写出路径
4. mysql删除数据库后怎么恢复
使用mysql中的日志功能。
首先:将最近的二进制类型的日志文件存成文本文件导出,命令如下:
mysqlbinlog
F:/wamp/mysql-bin.000045
>
F:/test.txt
其次:打开保存的txt文件,文件格式如下:
其中at
1099代表第1099个命令(姑且这么记),查询这些命令,看看需要回复的命令在什么地方,然后执行命令。
最后:执行回复命令,如下:
mysqlbinlog
--start-position="123"
--stop-position="531"
F:/wamp/mysql-bin.000045
F:/test.txt
|
mysql
-uroot
-p
这样就可以完成数据库的回复了!!!
5. mysql 命令还原数据库
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql直接将MySQL数据库压缩备份
mysqlmp -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz备份MySQL数据库某个(些)表
mysqlmp -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql同时备份多个MySQL数据库
mysqlmp -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql仅仅备份数据库结构
mysqlmp –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql备份服务器上所有数据库
mysqlmp –all-databases > allbackupfile.sql还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename将数据库转移到新服务器
mysqlmp -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
6. 备份和恢复数据库的命令
MySQL 命令行备份
1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录
(SHOW VARIABLES LIKE "%char%"; 查看数据库安装路径)
Linux下命令:
[root@linuxsir01 root]# mysqlmp -u root -p oa_int > /home/oa_20160627.sql
Windows下命令:
C:\Users\Administrator>mysqlmp -u 密码 -p 数据库名 > d:/oa_int_20160708.sql
MySQL 命令行恢复:
Linux下命令:
[root@linuxsir01 root]# mysql -u root -p oa_int1 < /home/oa_20160627.sql
Enter password:在这里输入数据库的密码
Windows下命令:
C:\Users\Administrator> mysql -u root -p 数据库名(要先创建好数据库) < d:/oa_int_20160708.sql
7. MySQL的备份与还原,非常规备份,全量备份,增量备份
1:官方百万级别的测试数据库:
官方测试数据库github网址:https://github.com/datacharmer/test_db
下载到目录,解压即可,运行命令:
2:自己创建简单测试数据库:
快速随机生成测试语言的网站:https://generatedata.com/
选择sql和想生成的字段,点击生成Generate!生成即可。
在MySQL输入生成的语句即可。
3:测试备份还原时用到的命令
删库跑路测试(先备份好)
还原后查询库的表数据是否完整。
采用复制整个数据存放目录
1:查看数据库数据存放位置
有两种方法:
1):在数据库中用命令 show variables like 'datadir' 查看
2):在配置文件中查看,配置了 datadir 目录的可查看。没有配置的默认为 /var/lib/mysql/ 位置
Linux中查看配置文件
2:复制目录或者目录下某个数据库名
3:还原时直接复制文件夹到数据库目录即可
mysqlmp又可叫做全量备份。
参数 --databases 同 -B ,单独一个库,也可省略。
1、备份命令mysqlmp格式
格式:mysqlmp -h主机名 -P端口 -u用户名 -p密码 database 数据库名 > 文件名.sql
备份testDatabase数据库
2、备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
3、直接将MySQL数据库压缩备份
备份并压缩
4、备份MySQL数据库某个(些)表
备份testDatabase中的myTable表,不需要用参数 --databases 或者 -B
5、同时备份多个MySQL数据库
同时备份testDatabase和 employees两个库
6、备份服务器上所有数据库
参数 --all-databases 同 -A
7、还原MySQL数据库的命令
1) 不指定数据名还原,默认生成原数据库名称,还原所有数据库。
2) 指定数据名还原,还原指定单个数据库,需在数据库种预先创建一个testDatabase名称。
3) 还原压缩的MySQL数据库
4) 进入数据库用source导入
增量备份是针对于数据库的bin-log日志进行备份的,增量备份是在全量的基础上进行操作的。增量备份主要是靠mysql记录的bin-log日志。
1:查看是否开启bin-log日志
进入mysql输入命令可查看。
显示如下为开启状态,日志文件在/var/lib/mysql/以binlog.00001的格式保存。
如未开启,需要在配置文件种配置
2:查看目前使用的bin-log日志文件
进入mysql查看命令。
显示如下,目前使用的是binlog.000022文件,所有操作都记录在此文件。
查看当前testDatabase的表myTable数据如下,
3:刷新日志,使用新的日志文件(备份)
在命令端执行命令
日志文件从 binlog.000022 变为 binlog.000023
这时相当与已经备份成功,备份文件即为上次的binlog.000022日志文件。
4:删除数量,从日志还原数据
1) 删除ABC行
查询以及没有ABC行列。
2) 恢复数据ABC行
退出mysql,在命令端用mysqlbinlog命令恢复到binlog.000022日志状态。
进入数据库再次查看数据,ABC已经恢复。
增量备份完成。
8. 怎么备份和还原mysql数据库
备份数据库
使用mysqlmp命令备份数据库
9. 重新安装mysql原来数据库的只剩下了.frm的问,怎么恢复的数据
一、InnoDB表结构的恢复
1
假定:MYSQL数据库已经崩溃,目前只有对应表的frm文件,大家都知道,frm文件无法通过文本编辑器查看,因为如果不恢复,基本上来说对我们没什么用。这里我们为了测试,假定该文件为test_innodb.frm
该表创建脚本如下:
mysql> create table test_innodb
-> (A int(11) default NULL,
-> B varchar(30) default NULL,
-> C date default NULL) engine=innodb;
Query OK, 0 rows affected (0.05 sec)
2
在新的正常工作的MYSQL环境下建立一个数据库,比如aa.
3
在aa数据库下建立同名的数据表test_innodb,表结构随意,这里只有一个id字段,操作过程片段如下:
mysql> create table test_innodb (id bigint not null)engine=InnoDB;
Query OK, 0 rows affected (0.09 sec)
4
停止mysql服务器,将系统崩溃后留下的test_innodb.frm文件拷贝到新的正常数据库的数据目录aa下,覆盖掉下边同名的frm文件,重新启动MYSQL服务。
END
二. MyISAM表结构的恢复
同样先假定需要恢复的表的FRM文件为test_myisam.frm,表结构为
mysql> create table test_myisam
-> (A int(11) default NULL,
-> B varchar(30) default NULL,
-> C date default NULL) engine=myisam;
Query OK, 0 rows affected (0.05 sec)
直接将test_myisam.frm拷贝到正常数据库对应的数据目录下。这时测试
mysql> show tables;
+--------------+
| Tables_in_aa |
+--------------+
| test_innodb |
| test_myisam |
+--------------+
3 rows in set (0.00 sec)
mysql> desc test_myisam;
ERROR 1017 (HY000): Can't find file: 'test_myisam' (errno: 2)
发现只能通过show tables命令看见表名,但是表结构还是没有恢复,desc命令报错。
在与test_myisam.frm同一目录建立以下2个文件,文件内容可以为空:
test_myisam.MYD test_myisam.MYI
在MYSQL命令行使用MYSQL本身的数据表恢复命令repair命令恢复表,如下:
mysql> repair table test_myisam USE_FRM;
+-----------------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------------+--------+----------+----------+
| aa.test_myisam | repair | status | OK |
+-----------------+--------+----------+----------+
1 row in set (0.00 sec)
根据结果可以知道,恢复命令执行成功