mysql数据恢复过程
从另一台机上把mysql数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和 *** 作。经过如下几种情况的 *** 作。
1
在本地重装mysql(安装目录d:\program
files\mysql\mysql
server
50),直接把mysql文件夹拷贝至d:\program
files\mysql\mysql
server
50\。结果,失败:数据库连接错误。
2
卸载后重装mysql,将d:\program
files\mysql\mysql
server
50\下的数据备份,只把mysql\data文件夹全部内容拷贝到d:\program
files\mysql\mysql
server
50\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。
3
卸载后重装mysql,将mysql\data文件夹里的cf1,last文件夹(这两个是原来mysql里的数据库)拷贝进d:\program
files\mysql\mysql
server
50\data。连接成功,在navicat
for
mysql里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(34g大,明显存储了元数据)拷贝到d:\program
files\mysql\mysql
server
50\data里,代替原来的ibdata1文件。重启电脑,打开navicat
for
mysql,连接成功,数据可以访问 *** 作。
至此, *** 作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说mysql失效了。
前提是把MYSQL的安装路径\bin添加到系统环境变量PATH中了。
备份:mysqldump
-u
root
-p123456
kcgl>
c:\20090219sql
mysqldump
备份命令
root
用户名(root管理员)
123456
密码
kcgl
备份的数据库名;
>
备份符号
20090219sql
备份的文件名
还原:
mysql
-u
root
-p123456
kcgl<
c:\20090219sql
mysql
还原命令
root
用户名(root管理员)
123456
密码
dbcurr
备份的数据库名;
<
还原符号
20090219sql还原的文件名
注意:首先要确保你的mysql
中有kcgl这个库,还原命令是不会自动建库的。
mysqldump
远程备份
mysqldump
-h
ip
-uroot
-proot
database
>
c:\datasql
---------其他---------
mysqldump备份:
mysqldump
-u用户名
-p密码
-h主机
数据库
a
-w
"sql条件"
--lock-all-tables
>
路径
案例:
mysqldump
-uroot
-p1234
-hlocalhost
db1
a
-w
"id
in
(select
id
from
b)"
--lock-all-tables
>
c:\aatxt
mysqldump还原:
mysqldump
-u用户名
-p密码
-h主机
数据库
<
路径
案例:
mysql
-uroot
-p1234
db1
<
c:\aatxt
mysqldump按条件导出:
mysqldump
-u用户名
-p密码
-h主机
数据库
a
--where
"条件语句"
--no-建表>
路径
mysqldump
-uroot
-p1234
dbname
a
--where
"tag='88'"
--no-create-info>
c:\asql
mysqldump按导入:
mysqldump
-u用户名
-p密码
-h主机
数据库
<
路径
案例:
mysql
-uroot
-p1234
db1
<
c:\atxt
mysqldump导出表:
mysqldump
-u用户名
-p密码
-h主机
数据库
表
案例:
mysqldump
-uroot
-p
sqlhk9
a
--no-data
-------------------------------------------------
mysqldump命令介绍
--all-databases,
-A:
备份所有数据库
--databases,
-B:
用于备份多个数据库,如果没有该选项,mysql
dump
把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysql
dum把每个名字都当作为数据库名。
--force,
-f:即使发现sql错误,仍然继续备份
--host=host_name,
-h
host_name:备份主机名,默认为localhost
--no-data,
-d:只导出表结构
--password[=password],
-p[password]:密码
--port=port_num,
-P
port_num:制定TCP/IP连接时的端口号
--quick,
-q:快速导出
--tables:覆盖
--databases
or
-B选项,后面所跟参数被视作表名
--user=user_name,
-u
user_name:用户名
--xml,
-X:导出为xml文件
1备份全部数据库的数据和结构
mysql
dump
-uroot
-p123456
-A
>F:\allsql
2备份全部数据库的结构(加
-d
参数)
mysql
dump
-uroot
-p123456
-A
-d>F:\all_structsql
3备份全部数据库的数据(加
-t
参数)
mysql
dump
-uroot
-p123456
-A
-t>F:\all_datasql
4备份单个数据库的数据和结构(,数据库名mydb)
mysql
dump
-uroot
-p123456
mydb>F:\mydbsql
5备份单个数据库的结构
mysql
dump
-uroot
-p123456
mydb
-d>F:\mydbsql
6备份单个数据库的数据
mysql
dump
-uroot
-p123456
mydb
-t>F:\mydbsql
7备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysql
dump
-uroot
-p123456
mydb
t1
t2
>f:\multablessql
8一次备份多个数据库
mysql
dump
-uroot
-p123456
--databases
db1
db2
>f:\muldbssql
还原部分分(1)mysql
命令行source方法
和
(2)系统命令行方法
1还原全部数据库:
(1)
mysql
命令行:mysql
>source
f:\allsql
(2)
系统命令行:
mysql
-uroot
-p123456
use
mydb
mysql
>source
f:\mydbsql
(2)
mysql
-uroot
-p123456
mydb
use
mydb
mysql
>source
f:\multablessql
(2)
mysql
-uroot
-p123456
mydb
source
f:\muldbssql
(2)
系统命令行:
mysql
-uroot
-p123456
评论
0
0
加载更多
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。
1Win32下MySQL的备份与还原
11 备份
开始菜单 | 运行 | cmd |利用“cd /Program Files/MySQL/MySQL Server 50/bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voicesql,然后输入密码即可开始导出。
12 还原
进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voicesql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。
2Linux下MySQL的备份与还原
21 备份
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysqldump -u root -p voice>voicesql,输入密码即可。
22 还原
法一:
[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同12还原。
法二:
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysql -u root -p voice<voicesql,输入密码即可。
Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的 *** 作,下面为大家分享一下 *** 作的常用的命令。
一、备份命令
1、备份MySQL数据库的命令
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
>
如果你要恢复的数据库是包含授权表的mysql数据库,您将需要使用--skip赠款-tables选项来运行服务器恢复整个数据库
- 首先,。否则,服务器会抱怨不能找到授权表。恢复表后,执行mysqladmin冲水privileges告诉服务器装载授权表,并用它们来启动。数据库目录到其他地方的原始内容
复制。例如,您可以使用它们在以后的事后分析检查表(验尸)的崩溃。
酒店与最新的数据库备份文件重新加载。如果您打算使用mysqldump的所加载的文件,则需要输入它们作为mysql的。如果您打算使用从数据库文件直接拷贝(例如,使用tar或CP),它会复制他们直接回数据库目录中。然而,在这种情况下,你应该在关闭之前,该服务器复制这些文件,然后重新启动它。在备份过程中
重做日志,然后查询更新数据库表中。对于所有可用的更新日志,你可以使用它作为mysql的输入。指定--one-database选项,因此MySQL只是要还原的数据库执行查询。如果你意识到有必要使用所有的更新日志文件,可以使用包含以下命令日志的目录:
%LS-TRL更新(0-9) | xargs的猫| mysql--。一个数据库DB_NAME
ls命令生成一个单独的日志文件更新列表,更新日志文件根据服务器(你知道,如果你其中的任何文件,排序顺序生成的顺序进行排序会发生变化,这将导致在更新日志中以错误的顺序使用)。有限公司您可能需要使用一些更新日志。例如,如果日志,因为命名update392备份,pdate393等产生的,可以在命令重新运行它们:
%的mysql - 一个数据库DB_NAME <录入。 392
%的mysql - 一个数据库DB_NAME <updata393
如果您正在运行的恢复,并打算使用更新日志恢复由于失误降数据的基础上,DROPTABLE或DELETE语句和丢失的信息时,一定要在开始更新日志删除这些语句。
恢复单个表
恢复单个表是非常困难的。如果是的mysqldump备份文件生成的,它只是不包含数据,您需要一个表,你需要提取的相关线路,并利用它们作为mysql的输入,这部分比较容易。困难的是,提取在该表的更新日志中使用的片段。你会发现:mysql_find_rows工具在这方面有所帮助,它可以提取多行从更新日志查询。另一种可能性是使用另一台服务器
恢复整个数据库,然后将该文件复制到表的原始数据库。这其实很容易!当文件被复制回数据库目录,确保原始数据库服务器关闭。
以上就是关于如何通过mysql的data文件恢复数据库全部的内容,包括:如何通过mysql的data文件恢复数据库、windows下Mysql 怎样备份和还原、如何进行数据库备份和恢复 mysql等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)