在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
mysqldump命令详解 mysqldump用法
常用的:
mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql
这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数
C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_drv > e:\date_drv.sql
mysql的数据导入也是相当便捷的,如:
mysql -uroot databasefoo < foo.sql
这样就可以将foo.sql的数据全部导入数据库databasefoo
mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
C:\Users\jack> mysqldump -uroot -pmysql sva_rec > e:\sva_rec.sql
2.导出一个表,包括表结构和数据
mysqldump -u用户名 -p 密码 数据库名 表名> 导出的文件1.导出整个数据库名
C:\Users\jack> mysqldump -uroot -pmysql sva_rec date_rec_drv> e:\date_rec_drv.sql
3.导出一个数据库结构
C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec > e:\sva_rec.sql
4.导出一个表,只有表结构
mysqldump -u用户名 -p 密码 -d数据库名 表名> 导出的文件名
C:\Users\jack> mysqldump -uroot -pmysql -d sva_rec date_rec_drv> e:\date_rec_drv.sql
5.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:wcnc_db.sql
一、数据备份的重要性
工作中,如果意外删除了重要的文件或者目录的话,那结果可就惨了。尤其是当误删除的数据涉及重要的客户或者关键项目,并且这些数据无法轻易重新创建的时候,那滋味,不用我说你也能想象得到。不巧的是,像这样的数据在公司环境中随处可见,例如销售记录、客户,等等。
二、关于mysqldump
MySQL自身提供了许多命令行工具,例如mysql工具可以用来与MySQL的数据库模式、数据、用户和配置变量进行交互,而mysqladmin工具则可以进行各种管理任务,还有就是下面将要介绍的mysqldump。此外还有很多,不过那超出了本文的讨论范围。工具mysqldump既可以用来备份数据库模式,还可以用来备份数据;利用它,我们不仅可以对一个服务器上的所有数据库进行地毯式的备份,同时我们还可以选择性地备份某个数据库,甚至数据库中指定的某些表。
当在服务器上安装MySQL的时候,应修改系统路径以便使全局命令行可以访问各个客户程序。打开终端窗口,并执行下列命令:%>mysqldump Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS]
databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] all-databases [OPTIONS]
For more options, use mysqldump help
这里给出了使用mysqldump程序的方法。举例来说,若要备份所有数据库模式和数据至文件backup092210.sql的话,可以执行如下所示的命令:%>mysqldump -u root -p all-databases > backup092210.sql Enter password:
这里,为了能够访问所有数据库,我们需要一个root权限,所以这里需要在提示符后面输入相应口令。此外,如果你是在开发用的服务器上练习这些命令的话,不妨花一些时间看看备份文件的内容。这时您会看到一系列的SQL语句,先是删除各个表后重新创建的语句,然后是重新创建相关数据的语句。另外,由于上面的例子中我们对所有数据库进行备份,所以您还会发现,备份文件将创建每个数据库(如果它还没有存在的话),然后通过USE命令切换到该数据库,进而创建与该数据库相关的表跟数据。
若要备份单个数据库,例如要备份名为wiki的数据库到一个名为wiki-backup092210.sql的文件中,我们可以使用如下所示的命令:%>mysqldump -u root -p wiki > wiki-backup092210.sql Enter password:
,若要备份数据库中名为users的表的话,例如要把它备份到名为wikiusers-backup092210.sql的文件中,我们可以使用如下所示的命令:%>mysqldump -u root -p wiki users > wikiusers-backup092210.sql Enter password:
有时候,我们可能只想备份数据库的模式,或者只想备份数据库的数据。为了备份数据库模式,可以向mysqldump传递参数no-data,如下所示:%>mysqldump -u root -p no-data wiki > wiki-backup092210.sql
为了只备份数据库的数据,可以向mysqldump使用参数no-create-info,如下所示:%>mysqldump -u root -p no-create-info wiki > wiki-backup092210.sql
对于前面所举的例子,仅需要少量的击键次数就能执行mysqldump命令。然而,工作中要干的活还有很多,并且如果老是执行这些命令的话,那么生活就会变得太单调了。因此,我们可以设法使这些过程自动化,这时我们可以借助cron工具来达成我们的目标,这个工具在所有类UNIX作系统上都能找到。为了自动执行备份任务,我们需要新建一个正确命名的文件。例如nightly-backup.sh,具体命令如下所示:#!/bin/sh mysqldump -uroot -psecret wiki > /home/backup/sql/wiki-backup-`date +%m%d%Y`.sql
接下来,我们将这个脚本提供交给cron,方法是使用crontab。为此,我们可以执行如下所示的命令:%>crontab -e
这将打开当前登录用户的crontab文件,如果该文件不存在的话就会自动新建一个。在这个文件中,我们可以添加如下内容,来确保每天上午3时运行该备份脚本:0 3 /home/backup/scripts/nightly-backup.sh
如果您对crontab的语法很陌生的话,这里的参数可能让您摸不着头脑。这里前五个参数分别对应于执行脚本的时间,依次为分、时、日、月和星期几。因此,要想在每星期二的4:45am执行脚本的话,可以使用参数45 4 3。
插入上面所示的一行内容后,保存文件,那么我们的任数据库名务就会开始按照给定时间调度执行。 需要注意的是,第二天早上一定要查看相应的目录,看看事情是否一切正常。
五、其15个MySQL常用基本SQL语句它备份方案
就像本文前面所说的那样,mysqldump只是MySQL众多备份方案中的一个。此外,您还可以使用MySQL的二进制日志文件进行增量备份,或者使用从MySQL主服务器中将数据到从服务器中。
六、小结本文中,我们与读者一道建立了一个简单的MySQL备份解决方案。如果您之前还未实施任何解决方案的话,不妨立即动手试一下。重要的是,这只需要花费您几分钟的时间,我想这是很划得来的。
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
-u用户名
>数据库名.sql
#/usr/local/mysql/bin/
-ur[root@localhost mysql]# mysql -u root -p voiceoot
abc
>abc.sql
敲回车后会提示输入密码
2、只导出表结构
-u用户名
-d
>数据库名.sql
#/usr/local/mysql/bin/
-uroot
-d
abc
>abc.sql
注:/usr/local/mysql/bin/
--->
mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create
database
abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use
abc;
(2)设置数据库编码
mysql>set
names
utf8;
(3)导入数据(注意sql文件的路径)
/home/abc/mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sqlabc.sql;
方法二:
-u用户名
<数据库名.sql
#mysql
-uabc_f
abc
建议使用第二种方法导入。
巧用DOS命令上传文件
mysql语句怎么写(有两个表a和b,b包含a所有的字段,想将b的某一条记录...你用的是SQLTOOL这个软件吧。
那个软件你上传上去文件直接像DOS下面那样输入路径文件名就是可以执行的。如果不能执行,说明对放机器的杀毒软件把你上传的文件删了。。 你可以再DIR看。
或者自己写一个批处理 就一个ECHO 11111,然后传上去,看执行结果能不能把11111显示出来。。。 都用SQL连上去了。你找一个开3389的程序加壳传上去就可以执行,然后直接远程登陆。
我这有个开3389的软件免杀的,以前用这个配合SQLTOOL弄了好多
1433鸡
这个我用过的,你应该用的是SQL综合利用工具吧,是用1433端口扫别人的SQL弱口令达到入侵的目的的,对吧!
直接输入C:\WinNt\System32\XXX 点执行就可以了,不过如果你上传的是木话,可能会被杀软杀了。还有一种特殊情况,就是上传什么文件后,明明说上传成功却找不到它!我也碰过这样的情况的
打开软件输入sa口令登陆
打开DOS命令框输入time查看那个系统上面的时间。
然后输入at 00.00(系统返回时间) muma.exe
他就会在你要求的时间运行。
你可以试试另一个的
cd C:\WinNt\System32\XXX 切换到这个路径
然后输入XXX
你试映射对方C盘,到本地为D盘
2000和XP都不能直接进入DOS 下一个Doshow Magic这个吧 能进入DOS
DOS命令 1 djr (查看文件)
2 format+磁盘: (格式化)
3 退出DOS ctrl+alt+delete
执行一个程序的方法就是输入那个程序的全路径就可以了。
例三、调整备份内容如
c:\test.exe
就可以了
黑人家啊?呵呵。
如果有足够权限,直接输入C:\WinNt\System32\XXX 就运行拉
使用MYSQL数据库的朋友,对MySQL进行备份和还原是比较重要的。重要的事简单做,今天介绍我们使用mysqldump和source命令来备份还原,分为Windows下和Linux下的MYSQL备份与还原作。
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3705]: starting 0anacron一、Win32系统下MySQL的备份还原方法
备份:在“运行”中输入“cmd
/Program
Files/MySQL/MySQL
Server
5.0/bin”进入bin文件夹,输入“mysqldump
-u
用户名
databasename
>exportfilename”导出数据库到文件,如mysqldump
-u
root
voice>voice.sql,然后输入密码即可开始导出MYSQL数据,实现备份作。
还原:进入MySQL
Command
Line
Client,输入密码,进入到“mysql>”,输入命令"show
databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create
database
voice;",回车;切换到刚建立的数据库,输入"use
voice;",回车;导入数据,输入"source
备份:[root@localhost
~]#
cd
/var/lib/mysql
(进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
mysqlSOURCE /tmp/db_name.sql;]#
-u
root
voice>voice.sql,输入密码即可。
种方法:[root@localhost
~]#
-u
root
回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。
~]#
cd
/var/lib/mysql
(进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
mysql]#
-u
root
voice
在 MySQL 中进行数据备份的方法有两种 : 1.mysqlhotcopy 这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是安全快捷的备份方法。 命令的使用方法是: mysqlhotcopy-uroot-prootpassdb1db2?dbnoutput_dir
在MySQL中进行数据备份的方法有两种:
1. mysqlhotcopy
这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是安全快捷的备份方法。
命令的使用方法是:
mysqlhotcopy -u root -p db1 db2 ? dbn
如果需要备份全本篇文章将介绍如何在win7系统下进行MySQL数据库备份。部数据库,可以加上_regexp=”.”参数。
Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服务器。它还可以刷新日志,使备份文件和日志文件的检查点能保持同步。
2. mysqldump
这个命令是用来把数据库倒成sql文件的,是非常古老的命令了。
命令的使用方法是:
mysqldump -u root -p _hex-blob db1 > db1.sql
加上_hex-blob参数以后,blob数据会被类似BASE64的方法转换为文本来存储在sql文件中,就不会导致sql文件格式问题了。经过测试,通过这种方法备份的blob数据再重新恢复回去能够完全正确。
如果要备份所有的数据库,可以加上_all-databases参数。
用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。
% mysqladmin -h remote_host create testdb
% mysqldump _opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqldump _opt testdb | ssh remote_host mysql testdb
2种数据库备份方式的优缺点:
使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行作,但是需人为协调数据库数据的备份前后一致-p性。
mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。
对于没有使用InnoDB的数据库,用mysqlhotcopy是的方法;否则必须采用mysqldump。不论如何,直接拷贝文件的备份方法应该被废弃了。
备份是容灾的基础,是指为防止系统出现作失误或系统故障导致数据丢失,而将全部或部分数据从应用主机的硬盘或阵列到其它的存储介质的过程。这篇文章主要介绍了linux实现mysql数据库每天自动备份定时备份,需要的朋友可以参考下
# mysql备份脚本概述
同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。备份是容灾的基础,是指为防止系统出现作失误或系统故障导致数据丢失,而将全部或部分数据从应用主机的硬盘或阵列到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!
备份是什么?
为什么要备份
容灾方案建设
存储介质
光盘
磁带
硬盘
磁盘阵列
DAS:直接附加存储
NAS:网络附加存储
SAN:存储区域网络
云存储
这里主要以本地磁盘为存储介质讲一下任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样。
1、查看磁盘空间情况:
既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果!
存储到当前磁盘这是简单,却是不的;服务器有多块硬盘,是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质; # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 50G 46G 1.6G 97% /
tmpfs 1.9G 92K 1.9G 1% /dev/shm
/dev/sda1 485M 39M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 534G 3.6G 503G 1% /home2、创建备份目录:
上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件; cd /home
mkdir backup
cd backup3、创建备份Shell脚本:
注意把以下命令中的DatabaseName换为实际的数据库名称;
当然,你也可以使用其实的命名规则! vi bkDatabaseName.sh输入/粘贴以下内容:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql对备份进行压缩: #!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;
4、添加可执行权限: chmod u+x bkDatabaseName.sh添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;
./bkDatabaseName.sh
5、添加任务
检测或安装 crontab
执行 crontab 命令如果报 command not found,就表明没有安装 # crontab
-bash: crontab: command not found如时没有安装 crontab,需要先安装它,具体步骤请参考:
CentOS下使用yum命令安装任务程序crontab
使用rpm命令从CentOS系统盘安装任务程序crontab
添加任务
执行命令: crontab -e这时就像使用vi编辑器一样,可以对任务进行编辑。
输入以下内容并保存: /1 /home/backup/bkDatabaseName.sh具体是什么意思呢?
意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。
6、测试任务是否执行
如果任务执行失败了,可以通过以下命令查看任务日志: # tail -f /var/log/cron输出类似如下:
Sep 30 14:01:01 bogon run-parts(/etc/cron.hourly)[2512]: finished 0anacron
Sep 30 15:01:01 bogon CROND[3092]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 15:01:01 bogon run-parts(/etc/cron.hourly)[3092]: starting 0anacron
Sep 30 15:01:02 bogon run-parts(/etc/cron.hourly)[3101]: finished 0anacron
Sep 30 15:50:44 bogon crontab[3598]: (root) BEGIN EDIT (root)
Sep 30 16:01:01 bogon CROND[3705]: (root) CMD (run-parts /etc/cron.hourly)
Sep 30 16:01:01 bogon run-parts(/etc/cron.hourly)[3714]: finished 0anacron
不用关闭,但是MyISAM引擎会锁表,innodb不会。
2.6 备份单个数据库的数据晕。。关闭了 mysqldump 就没的执行了。。mysqldump 在shell脚本中使用的多。。
Sep 30 16:15:29 bogon crontab[3598]: (root) END EDIT (root)总结当然不能关闭。
关闭了 mysqldump 就没的执行了。
mysqldump -uroot -p mysql >1.sql
如果只要导出某个表的数据,则在数据库名后再添加此表名即可,下边命令将导出mysql库中user表的数据。
mysqldump -uroot -p mysql user>2.sql
mysqldump -h 211.2.22.2 -uroot -p123456 mysql>3.sql
不用, 默认会加只读锁
使用MYSQL数据库的朋友,对MySQL进行备份和还原是比较重要的。重要的事简单做,今天介绍我们使用mysqldump和source命令来备份还原,分为Windows下和Linux下的MYSQL备份与还原作。 一、Win32系统下MySQL的备份还原方法 备份:在运行中输入cmd ,利用cd /Pro
使用MYSQL数据库的朋友,对MySQL进行备份和还原是比较重要的。重要的事简单做,,今天介绍我们使用mysqldump和source命令来备份还原,分为Windows下和Linux下的MYSQL备份与还原作。
一、Win32系统下MySQL的备份还原方法
备份:在“运行”中输入“cmd ”,利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”进入bin文件夹,输入“mysqldump -u 用户名 -p databasename >exportfilemysql>sourcename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出MYSQL数据,实现备份作。
还原:进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。
备份:[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysqldump -u root -p voice>直接拷贝数mysql -u root -p密码 dbname [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) 与小站点相比,大型站点的数据库管理员,需要提前做好以下的事情: 提供灾难发生时核心业务数据的恢复。理论上这个过程至少需要执行一次。 当用户数量急剧增长时的快速横向扩展 对于所有这些事情,提前并准备好必要时的快速应对是很重要的。 为了保证站点可响应和可用性,需要做两件事:系统的数据备份和冗余。备份可以将节点恢复到它崩溃之前的状态,备份根据需求有几种比如及时恢复(PITR:point-in-time-recovery),在线备份等等;而冗余则保证即使在一个或更多节点停止服务的情况下,站点仍能继续运行,备份一般通过硬件副本来实现,让几个实例并行运行,并通过在几个机器上保存相同数据的多个可用副本。的主要应用场景:1)针对高读写比的,scale out;2)添加冗余保证高可用性,比如双主配置(dual-master setup)。 二进制日志(binlog) 过程需要二进制日志。二进制日志的目的是记录数据库中表的更改,然后用于和PITR,另外少数审计情况下也会用到。 查看二进制日志: # 强制把缓存的东西刷到LOGS中,并产生一个Rotate写入binlog中FLUSH LOGS;# 正常使用很久的DB不建议使用这个命令,需要加参数,指定具体的binlog文件名 【IN 'xxxx'】SHOW BINLOG EVENTS/G 二进制日志中所包含的字段: Event_type: 比如Format_desc, Query, RotateServer_id : 创建的服务器idLog_name : 存储的文件名,一个只能存储在一个文件中Pos : 在文件中的开始位置,及的个字节End_log_pos:在文件中的结束位置,也就是下一个的开始位置Info : 具体的信息,Query的时候就是SQL语句 二进制日志的结构和内容: 获取当前正在写入的是哪一个二进制日志文件: SHOW MASTER STATUS/G RESET MASTER命令删除了所有的二进制日志文件并清空了二进制日志索引文件。RESET SLAVE命令删除了Sle所用的所有文件,重新开始。 CHANGE MASTER TO命令用于改变sle连接master的一些参数,其中就包括sle读取master二进制日志文件的参数。比如使用MASTER_LOG_FILE和MASTER_LOG_POS来指定master开始发送的binlog位置。 如何建立新Sle 1:配置新的Sle2:备份Master(或者备份已经了Master的Sle)3:接下该备份相应的binlog位置4:在新Sle上恢复备份5:配置Sle从这个binlog位置开始 1:克隆Master: # 刷新所有的表并锁定数据库,防止在检查binlog位置之前数据库发生改变FLUSH TABLES WITH READ LOCK;# 获取当前的binlog文件和posSHOW MASTER STATUS/G# 备份mastermysqldump --all-databases --host=master-1 >backup.sql# 解锁UNLOCK TABLES;# 在sle上恢复备份mysql --host=sle-1 其实mysqldump命令提供了master_data选项,自动把MASTER_LOG_FILE和MASTER_LOG_POS信息dump到backup.sql中 另外:FLUSH TABLES WITH READ LOCK对于InnoDB是不安全的,因为虽然会锁表,不会产生新事务,但是后台仍然有一些活动在继续进行。 所以安全的创建InnoDB数据表的备份可以使用下面的方法。 1:关闭服务器,然后文件。如果数据库很大 ,采取这种方法,因为这时使用mysqldump进行数据恢复会很慢2:执行FLUSH TABLES WITH READ LOCK之后,使用mysqldump3:执行FLUSH TABLES WITH READ LOCK之后,使用快照的方法,比如LVM(Linux),ZFS(Solaris)快照 2:克隆Sle: # 防止出现不一致的备份映像,备份Sle之前需要先停止replicationSTOP SLAVE;# 确定从哪里开始,注意Relay_Master_Log_File和Exec_Master_Log_PosSHOW SLAVE STATUS/G# 配置新的sle,指向masterCHANGE MASTER TOMASTER_HOST = 'master-1',MASTER_PORT = 3306,MASTER_USER = 'sle-1',MASTER_PASSWORD = 'xxxx',MASTER_LOG_FILE = 'master-bin.000042',MASTER_LOG_POS = 546632;# 启动新的sleSTART SLAVE 摘自
MySQL(一)---二进制日志干什么的_MySQL
然后上传文件。传统意义上说,MySQL记录了产生变化的SQL语句,称为基于语句的(statement-based replication)。基于语句的的缺点是无法保证所有语句都正确。所以在5.1版本中,MySQL还提供了基于行的(row-based replication)。