mysql中的dump命令用法
mysqldump-uc-pd-Rdb_temp>/db_temp.txt
u--用户名
p--密码
R--导出存储过程(默认不导出)
本回答由提问者推荐
mysql无法使用mysqldump命令
mysqldump不是sql语句,mysqldump是mysql用于转存储数据库的实用程序。
所以是在shell中执行的。你是不是将它写在SQL中了。
使用mysqldump备份数据库
使用脚本每天定期执行数据库备份操作,对每个使用mysql数据库的人来说都很有必要,这样的脚本网上有很多,这里摘抄一个朋友的脚本 dbbackup:
这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
dbbackup代码:
#!/bin/bash
#This is a Shellscript For Auto DB Backup
#Powered by aspbiz
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(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
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
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
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
echo "-------------------------------------------" >> $LogFile
放入crontab定期执行dbbackup
假定dbbackup在/root目录下。我们通过使用crontab命令,设置每天0点10分执行/root/dbbakup脚本。
1、 使用 crontab –e 编辑crontab
2、 在crontab中加入:
#back for jabber database
10 0 * * * /root/dbbackup最后怎么又有-u -p了?运行cmd
在mysql安装目录的bin文件夹下
mysqldump -u 用户名 --password 密码 myftw>d:\myftw.sql
这样就行了
如何使用mysqldump
在linux命令行下执行的命令,不用进入mysql。
最常用的一条:比如我要把test数据库导出:
mysqldump -uroot -p --databases test >test.sql
你在哪个目录下输入此命令,就默认导出在那个目录下。
不过我建议最好还是加上具体目录:如
mysqldump -uroot -p --databases test > /home/test.sql
也可以加上 --master-data=2,意思为在导出的sql文件中记录 该备份行为的日志文件名和日志文件位置。
更多资料参考mysql手册。mysqldump要在命令行里执行。一般正确安装mysql以后,mysqldump所在的路径就被加入系统环境变量里边了,直接在命令行里就可以执行了。
你可以在cmd里运行
mysqldump --help
查看具体用法
当然如果要用,最好还是找本专业的书或者文章看一看。
比较简单的用法是
mysqldump -u用户名 -p密码 数据库名 >dump文件的路径和名称
“用户名”、“密码”、 “数据库名”、 “dump文件的路径和名称”按实际的填写。