linux下如何备份还原mysql数据库数据库教程

| 收藏本文 下载本文 作者:梦思的梦

下面是小编帮大家整理的linux下如何备份还原mysql数据库数据库教程(共含8篇),欢迎阅读,希望大家能够喜欢。同时,但愿您也能像本文投稿人“梦思的梦”一样,积极向本站投稿分享好文章。

linux下如何备份还原mysql数据库数据库教程

篇1:linux下如何备份还原mysql数据库数据库教程

本文介绍了linux下如何备份与恢复mysql数据库,

数据库备份是非常重要的。如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少。

一、用命令实现备份

MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份。

按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm >tm_050519.sql数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:

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

系统崩溃,重建系统时,可以这样恢复数据:

# mysqldump -u root -p tm < tm_050519.sql

从压缩文件直接恢复:

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

当然,有很多MySQL工具提供更直观的备份恢复功能,比如用phpMyAdmin就很方便。但我认为,mysqldump是最基本、最通用的。

二、利用crontab,系统每天定时备份mysql数据库

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的,

1、创建保存备份文件的路径/var/backup/mysqlbak

# mkdir -p /var/backup/mysqlbak

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql.sh

#!/bin/bash# mysql备份脚本cd /var/backup/mysqlbak/dateDIR=`date +“%y-%m-%d”`mkdir -p $dateDIR/datafor i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 -e “show databases” grep -v “Database” grep -v “information_schema”`do /usr/local/www/mysql/bin/mysqldump -uroot -plin31415926 $i gzip >/var/backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gzdone

3、修改文件属性,使其可执行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

# crontab -e在下面添加01 3 * * * root /usr/sbin/bakmysql

#表示每天3点钟执行备份

这样每天就可以在/var/backup/mysqlbak下看到备份的sql文件 了!

篇2:linux高负载下彻底优化mysql数据库数据库教程

友情提示:同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能,

同时在线访问量继续增大 对于1G内存的服务器明显感觉到吃力严重时甚至每天都会死机 或者时不时的服务器卡一下 这个问题曾经困扰了我半个多月MySQL使用是很具伸缩性的算法,因此你通常能用很少的内存运行或给MySQL更多的被存以得到更好的性能。

安装好mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了。

一般的情况下,my-medium.cnf这个配制文件就能满足我们的大多需要;一般我们会把配置文件拷贝到/etc/my.cnf 只需要修改这个配置文件就可以了,使用mysqladmin variables extended-status Cu root Cp 可以看到目前的参数,有3个配置参数是最重要的,即key_buffer_size,query_cache_size,table_cache。

key_buffer_size只对MyISAM表起作用,key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。一般我们设为16M,实际上稍微大一点的站点 这个数字是远远不够的,通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用SHOW STATUS LIKE ‘key_read%’获得)。 或者如果你装了phpmyadmin 可以通过服务器运行状态看到,笔者推荐用phpmyadmin管理mysql,以下的状态值都是本人通过phpmyadmin获得的实例分析:

这个服务器已经运行了20天

key_buffer_size C 128M

key_read_requests C 650759289

key_reads - 79112

比例接近1:8000 健康状况非常好

另外一个估计key_buffer_size的办法 把你网站数据库的每个表的索引所占空间大小加起来看看以此服务器为例:比较大的几个表索引加起来大概125M 这个数字会随着表变大而变大。

从4.0.1开始,MySQL提供了查询缓冲机制,

使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。根据MySQL用户手册,使用查询缓冲最多可以达到238%的效率。

通过调节以下几个参数可以知道query_cache_size设置得是否合理

Qcache inserts

Qcache hits

Qcache lowmem prunes

Qcache free blocks

Qcache total blocks

Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,同时Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,此时需要增加缓冲大小Qcache_hits的值不大,则表明你的查询重复率很低,这种情况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。此外,在SELECT语句中加入SQL_NO_CACHE可以明确表示不使用查询缓冲。

Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多query_cache_type指定是否使用查询缓冲

我设置:

query_cache_size = 32M

query_cache_type= 1

得到如下状态值:

Qcache queries in cache 12737 表明目前缓存的条数

Qcache inserts 20649006

Qcache hits 79060095 看来重复查询率还挺高的

Qcache lowmem prunes 617913 有这么多次出现缓存过低的情况

Qcache not cached 189896

Qcache free memory 18573912 目前剩余缓存空间

Qcache free blocks 5328 这个数字似乎有点大 碎片不少

Qcache total blocks 30953

如果内存允许32M应该要往上加点

table_cache指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用SHOW STATUS LIKE ‘Open%tables’获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。

对于有1G内存的机器,推荐值是128-256。

12 下一页 >全文阅读

提示:试试“← →”键,翻页更方便哦!

篇3:ubuntu下简单配置mysql数据库数据库教程

这里我用重启命令sudo /etc/init.d/mysql restart,出现错误信息, 所以用了上面(步骤3)那种关闭服务又启动的笨方法,

一). ubuntu下mysql安装布局:

/usr/bin                     客户端程序和mysql_install_db

/db                            数据库和日志文件

/var/run mysqld       服务器

/etc/mysql mysql      配置文件my.cnf

/usr/share/mysql      字符集,基准程序和错误消息

/etc/init.d/mysql       启动mysql服务器

二). 设置mysql服务器随开关机自动启动和关闭:

系统 ->系统管理 ->服务

进行到“服务设置”窗口后,激活mysql数据库服务即可

三). 修改mysql数据库文件的存储目录:

假设我们指定的数据库文件目录为/db

1. 创建目录 /db,并修改其拥有者及所属群组为mysql:mysql.命令:chown mysql:mysql db

2. 关闭mysql数据库服务:mysqladmin -u root -p shutdown

3. 修改mysql配置文件my.cnf:将datadir=/var/lib/mysql改为datadir=/db

4. 重新初始化数据文件:执行mysql_install_db

5. 启动mysql数据库服务:sudo /etc/init.d/mysql start

6. 设置mysql数据库root密码:mysqladmin -u root password ‘new-password’

此时我们会发现/db目录下出现mysql相关文件,

如果我们新建数据库,其数据库文件也将出现在db目录下。表示我们修改的mysql数据库文件存储目录正确。

四). 配置mysql数据库的INNODB存储引擎:

1 . 查看mysql存储引擎情况: 登录mysql数据库,在mysql>提示符下搞入show engines;命令。发现: InnoDB YES,说明此mysql数据库服务器支持InnoDB引擎。

2. 设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句,保存。

3. 重启mysql服务器:mysqladmin -u root -p shutdown(回车),sudo /etc/init.d/mysql start(回车)。

4. 登录mysql数据库,在mysql>提示符下搞入show engines;命令。如果出现 InnoDB DEFAULT,则表示我们 设置InnoDB为默认引擎成功。

篇4:Linux下mysql数据库的备份putty

前提:具有ssh登陆权限

工作步骤:

下载软件putty,设置ssh 登陆选项

登陆后,进入自己的主页目录*(通过ftp可以访问到)

执行mysqldump命令可执行数据库备份,而mysqlrestore命令则恢复数据库,

格式:

pXXXXXXX@kundenserver:~ >mysqldump -hdbXX.puretec.de -upXXXXXXX -p******** dbXXXXXXX >dbXXXXXXXX.sql

pXXXXXXX@kundenserver:~ >mysql -hdbXX.puretec.de -upXXXXXXX -p******** dbXXXXXXX < dbXXXXXXXX.sql

执行mysqldump后,会在当前所在目录生成一个备份文件(大小和数据库大小相当)

通过ftp即可下载备份的数据库文件包

恢复数据库工作与以上两部相反

你也可以写一个php脚本,来完成以上操作:

备份文件

include “../config.php”;

MYSQL_CONNECT($dbhost, $dbuser, $dbpw) or die ( “

无法访问数据库

”);

MYSQL_SELECT_DB($dbname) or die ( “

数据库尚未建立

”);

$path = getenv(“DOCUMENT_ROOT”).“/DB_backup”;

$result = MYSQL_QUERY(“SHOW TABLES”);

$numrow = MYSQL_NUM_ROWS($result);

for($i = 0;$i < $numrow;$i++) {

$table = MYSQL_RESULT($result,$i);

echo “$table ... ”;

system(sprintf(“mysqldump --opt -h $dbhost -u $dbuser -p$dbpw $dbname $table | gzip >%s/$table.sql.gz”,$path));

echo “DONE\n\n”;

}

MYSQL_CLOSE;

恢复文件

include “../config.php”;

system(sprintf(

“gunzip -c %s/dump.sql.gz | mysql -h %s -u %s -p%s %s”,

getenv(“DOCUMENT_ROOT”),

$dbhost,

$dbuser,

$dbpw,

$dbname

));

echo “+DONE”;

篇5:linux定时备份mysql数据库linux服务器应用

利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的,

1、创建保存备份文件的路径/mysqldata

#mkdir /mysqldata

2、创建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql

输入

rq=` date +%Y%m%d `

tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql

或者写成

rq=` date +%Y%m%d `

mysqldump --all-databases -u root -p密码 >/mysqldata/mysql$rq.sql

/var/lib/mysql是你数据库文件的目录,部分用户是/usr/local/mysql/data,每个人可能不同

/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做,

3、修改文件属性,使其可执行

# chmod +x /usr/sbin/bakmysql

4、修改/etc/crontab

#vi /etc/crontab

在下面添加

01 3 * * * root /usr/sbin/bakmysql

表示每天3点钟执行备份

5、重新启动crond

# /etc/rc.d/init.d/crond restart

完成。

这样每天你在/mysqldata可以看到这样的文件

mysql0619.tar.gz

你直接下载就可以了。

篇6:linux mysql数据库备份脚本代码linux操作系统

可以将这个脚本放进crontab,他的配制文件在 /etc/crontab中每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。

代码如下复制代码

#!/bin/bash

#This is a ShellScript. For Auto DB Backup

#Powered by aspbiz

#2004-09

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,

#以及备份方式

#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy

#默认情况下,用root(空)登录mysql数据库,备份至/root/namexxxxx.tgz

DBName=mysql

DBUser=root

DBPasswd=password

BackupPath=/root/

LogFile=/root/db.log

DBPath=/var/local/mysql5/var/

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

NewFile=“$BackupPath”“$DBName”$(date +%y%m%d).tgz

DumpFile=“$BackupPath”“$DBName”$(date +%y%m%d)

ldFile=“$BackupPath”“$DBName”$(date +%y%m%d –date=’5 days ago’).tgz

echo “——————————————-” >>$LogFile

echo $(date +“%y-%m-%d %H:%M:%S”) >>$LogFile

echo “————————–” >>$LogFile

#Delete Old File

if [ -f $OldFile ]

then

rm -f $OldFile >>$LogFile 2>&1

echo “[$OldFile]Delete Old File Success!” >>$LogFile

else

echo “[$OldFile]No Old Backup File!” >>$LogFile

fi

if [ -f $NewFile ]

then

echo “[$NewFile]The Backup File is exists,Can’t Backup!” >>$LogFile

else

case $BackupMethod in

mysqldump)

if [ -z $DBPasswd ]

then

mysqldump -u $DBUser –opt $DBName >$DumpFile

else

mysqldump -u $DBUser -p$DBPasswd –opt $DBName >$DumpFile

fi

tar czvf $NewFile $DumpFile >>$LogFile 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

rm -rf $DumpFile

;;

mysqlhotcopy)

rm -rf $DumpFile

mkdir $DumpFile

if [ -z $DBPasswd ]

then

mysqlhotcopy -u $DBUser $DBName $DumpFile >>$LogFile 2>&1

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi

tar czvf $NewFile $DumpFile >>$LogFile 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

rm -rf $DumpFile

;;

*)

/etc/init.d/mysqld stop >/dev/null 2>&1

tar czvf $NewFile $DBPath$DBName >>$LogFile 2>&1

/etc/init.d/mysqld start >/dev/null 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

;;

esac

fi

echo “——————————————-” >>$LogFile

例2.如果对上面脚本不满意可参考下面mysql数据库备份脚本哦

代码如下复制代码

#!/bin/bash

#Mysql autobackup shell#write by tuspark.cn

#-------------------数据库相关的用户名、密码、需要备份的数据库名、备份目录等

dbuser=root

dbpasswd=XXXXX

dbserver=localhost

dbname=XXXXX

dbopt=--opt

backupdir=/dcbackup/

#-------------------是否开启FTP远程备份,0为否,1为是。

copytoftp=1

ftpserver=XXXXX

ftpuser=XXXXX

ftppasswd=XXXXX

#-------------------以下参数

fileprefix=dcradiusdump

filename=$backupdir`date +%F`.sql

newfile=$fileprefix-`date +%F`.tar.gz

keepdays=10

#-------------------以下为备份时的日志

logfile=/var/log/mysqlbackup.log

logtmp=/var/log/mybackup.tmp

#===============================================

if [ ! -d $backupdir ]

then

echo “$backupdir is not exist, then make ...” >>$logfile

mkdir -p $backupdir

fi

echo “start====================================>”>>$logfile

echo “Beginning backup `date '+%F %T'`” >>$logfile

echo “Delete $keepdays days ago files ...” >>$logfile

find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} ;

echo “Deleted Backup file is :”>>$logfile

cat $logtmp >>$logfile

echo “Delete old file Success!” >>$logfile

if [ -f $backupdir$newfile ]

then

echo “$newfile backup exist, backup stop ...” >>$logfile

else

if [ -z $dbpasswd ]

then

mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename

else

mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename

fi

tar czvf $backupdir$newfile $dumpfilename >>$logfile 2>&1

echo “$backupdir$newfile Backup Success!” >>$logfile

rm -fr $dumpfilename

if [ $copytoftp = 1 ]; then

if [ -z $ftpserver ];then

echo “Ftp Server not set,Copy to Ftp Failed ...” >>$logfile

exit 1

elif [ -z $ftpuser ];then

echo “Ftp user not set, Copy to Ftp Failed ...” >>$logfile

exit 2

elif [ -z $ftppasswd ]; then

echo “Ftp password not set, Copy to Ftp Failed ...” >>$logfile

exit 3

else

echo “Start copy to Ftp server ....” >>$logfile

ftp -n>$logfile

fi

实例三

代码如下复制代码

第一步:在服务器上配置备份目录代码:

--------------------------------------------------------------------------------

mkdir /var/lib/mysqlbackup

cd /var/lib/mysqlbackup

--------------------------------------------------------------------------------

第二步:编写备份脚本代码:

--------------------------------------------------------------------------------

vi dbbackup.sh

--------------------------------------------------------------------------------

粘帖以下代码,务必更改其中的username,password和dbname,

代码:

--------------------------------------------------------------------------------

#!/bin/sh #Username to access the MySQL server USERNAME=“username” # Username to access the MySQL server PASSWORD=“password” # List of DBNAMES for Backup DBNAME=“dbname” #date timestamp for log message DATE=`/bin/date +%Y-%m-%d_%Hh%Mm` #output file UTDIR=“/var/lib/mysqlbackup/” UTFILE=“ip_bindass”.$DATE.“sql.gz” #working directory DIR=“/var/lib/mysqlbackup/”#cd $DIR # MySQL Backup /usr/bin/mysqldump --database $DBNAME --opt --single-transaction -u$USERNAME -p$PASSWORD | /usr/bin/gzip -9 >$OUTDIR$OUTFILE

--------------------------------------------------------------------------------

更改备份脚本权限

代码:

--------------------------------------------------------------------------------

chmod +x dbbackup.sh

--------------------------------------------------------------------------------

第三步:用crontab定时执行备份脚本代码:

--------------------------------------------------------------------------------

crontab -e

--------------------------------------------------------------------------------

若每天下午3点20备份,添加如下代码,

代码:

--------------------------------------------------------------------------------

20 15 * * * /var/lib/mysqlbackup/dbbackup.sh

--------------------------------------------------------------------------------

搞定!

篇7:关于在 win 下安装 mysql 的一些问题!数据库教程

mysql|问题

前一段时间,发表了一编安装mysql的文章,结果有很多的朋友来问相关的问题,

关于在 win2000 下安装 mysql 的一些问题!数据库教程

。(太多了,应付不了)

1. 关于在其他目录安装mysql

ljf@sinonets.net.cn的朋友问:

我在win 2000下安装 mysql-shareware-3.22.32-win,希望改变路径,如d:\win32app\mysql但导致mysql服务无法启动,改变:d:\my.cnf文件里所有相关路径为d:\win32app\mysql也不行

方法如下:

如你把目录转移就要这样来启动mysql

D:\win32app\mysql\bin\mysqld --basedir D:\win32app\\mysql

net start mysql

2.从旧的版本升级

windymail@sina.com的朋友问:

我按照您的文章 win2000下安装mysql-shareware-3.22.32-win时遇到几个问题想请教您一下

我在运行c;\mysql\bin\mysql-shareware --install时出现了failed to service 的信息

我以前安装的是3.11的版本

方法如下

请把原 3.11 的文件和reg里关于它的东西完全清除,

然后再安装.

在清除之前要把你的 mysql 停止(

net stop mysql

mysqladmin --user=root --password=your password shutdown

),否则的话~~~~~

3.mysql的数据库在那里??LINUX那里吗?

dao,mysql安装在win2000上那数据库当然是在……

4.那里可以下载?

在这里就有啊

我的

e-mail:freeboy@popsun.com

欢迎来韶关热线找我讨论关于服务器和asp的问题。在bbs或者chitchat都可以找到。我的ID是freeboy。到了就说找网管就OK了。

篇8:windows下计划任务自动备份mysql数据库方法Windows服务器操作系统

前提条件是你需要有服务器控制权限才可以,这样我们可以利用cmd命令加windows计划任务来实现定时执行我们写的了bat批处理文件进行备份mysql数据库文件了

先我们写了个a.bat处理文件,代码如下

代码如下复制代码

net stop mysql

xcopy D:phpStudyMySQLdataabc*.* D:up%date:~0,10% /y

net start mysql

注:abc是你数据库的名,up是你要备份到指定目录的名,后来date参考是你的生成目录日期,如是up/2013-03-06 这种,

windows下计划任务自动备份mysql数据库方法Windows服务器操作系统

现在我们批处理文件写好了,开始计划任务了。

1、在你:windows“开始->程序->附件->系统工具”中找到它,打开“计划任务”窗口

2、找到你a.bat文件所在路径。

3、下面可以选择执行周期,这里我们选择每天。

4、然后输入具体的时间点,可精确到分钟,后面会有个输入电脑的登录密码,大家尽量输入,否则会备份不成功哦,我没输入密码是备份不了的。

5、最后完成就KO了。

Linux定时备份数据库

ChangeAllObjectOwner数据库教程

解决ubuntu下mysql不能远程连接数据库的问题数据库教程

项目管理数据库教程

复制监视器数据库教程

组合查询数据库教程

图形化管理MYSQL数据库的工具 SQLyog 8.6.2 发布数据库教程

删除Oracle 9i数据库数据库教程

预装入对象数据库教程

Visual C++ ADO数据库编程入门(下)数据库教程

linux下如何备份还原mysql数据库数据库教程(通用8篇)

欢迎下载DOC格式的linux下如何备份还原mysql数据库数据库教程,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档