Linux下mysql备份 恢复

原文

比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump

命令格式如下:
[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sql
Enter password:在这里输入数据库的密码

通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。其实备份的位置和文件名,根据自己的情况来定。文件名可以自己来取,路径也可以自己来安排;
比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。

[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sql
Enter password:在这里输入数据库管理员root的数据库密码

如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

#mysqldump -u root -p tm | gzip > tm_050519.sql.gz


这样我们到/home/beinan目录下就能发现mysql中名为linux的数据库的备份文件linuxsir031130.sql
综上所述,我们学习时要学会变通。

恢复:
首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;
[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sql
Enter password:在这里输入密码

如果机器好,数据库比较小,几分钟就好了。




如何导出数据库表的数据?(不同于备份哦)

#mysql

(#mysql>use linux;)#可有可无

#mysql>select * from linux.table-name into outfile "/home/table-name.txt";

#/home/table-name.txt 可能会报错,如果这样去掉/home直接"table-name.txt"

默认保存在/var/lib/mysql/table-name.txt


对mysql数据库常用命令的一点补充;

几个常用的mysql相关的管理命令
mysql 命令:基本文本的,显示和使用的mysql数据库。前面已经简单的提过用法;比如登录等。
mysqladmin 命令,用来创建和维护mysql数据库的命令,前面已经简单的提过;
isamchk 是用来修复、检查和优化.ism后缀的数据库文件;
mysqldump 是用于备份数据库,前面已经简单的说明过;
myisamchk 用来修复.myi后缀的数据库文件;

比如我们要检查名为linux的数据库.myi数据库表是否存在问题,应该用下面的命令;

要把mysqld服务器停下来
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop

然后执行
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI

上面的命令的意思就是检查所有的.myi文件,数据库的目录在/opt/mysql/var/linux/目录中

如果有问题,应该用-r参数来修复
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI

7]mysqlshow 命令:显示用户选择的数据库和表
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [数据库名]

比如我要查看名为linux的数据库;应该是:

[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux


MYSQL 数据库导入导出命令

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

备份数据库:
进入cmd
导出所有数据库:输入:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]

导出数据和数据结构:输入:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]
例子:mysqldump -u root -p test>d:\test.sql
注意:此备份只备份数据和数据结构,没有备份存储过程和触发器

只导出数据不导出数据结构:输入:mysqldump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径]

导出数据库中的Events
输入:mysqldump -u [数据库用户名] -p -E [数据库用户名]>[备份文件的保存路径]

导出数据库中的存储过程和函数
mysqldump -u [数据库用户名] -p -R [数据库用户名]>[备份文件的保存路径]

导入数据库
mysql -u root -p<[备份文件的保存路径] 疑问

恢复备份文件:
进入MYSQL Command Line Client
先创建数据库:create database test 注:test是创建数据库的名称
再切换到当前数据库:use test
再输入:\. d:/test.sql 或 souce d:/test.sql

1. 概述
MySQL数据库的导入,有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件。

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。

2. 方法一 SQL脚本形式
操作步骤如下:
2.1. 导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL脚本。
2.1.1 用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“Drop DATABASE”和“Drop TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。

2.1.2 用mysqldump命令行
命令格式
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
范例:
mysqldump -uroot -p abc > abc.sql
(导出数据库abc到abc.sql文件)

提示输入密码时,输入该数据库用户名的密码。

2.2. 创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。

2.3. 将SQL脚本导入执行
同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。

注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。

2.3.2 用mysql命令行
命令格式
mysql -u用户名 -p 数据库名 < 数据库名.sql
范例:
mysql -uabc_f -p abc < abc.sql
(导入数据库abc从abc.sql文件)

提示输入密码时,输入该数据库用户名的密码。

3 方法二 直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。
3.1 准备原始文件
用tar打包为一个文件

3.2 创建空数据库

3.3 解压
在临时目录中解压,如:
cd /tmp
tar zxf mydb.tar.gz

3.4 拷贝
将解压后的数据库文件拷贝到相关目录
cd mydb/
cp * /var/lib/mysql/mydb/

对于FreeBSD:
cp * /var/db/mysql/mydb/

3.5 权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值