前晚用网站自带的后台备份了数据库,导入库时却发现好好的问题,这回直接在服务器上备份数据库,免得出现些不必要的麻烦。
服务器是ubuntu版本的,给予权限 chmod 777 xxx(xxx是文件夹名)
mysqldump -u root -p –databases yyy(数据库名) > /home/../../test.sql
回车输入密码就可以了。
如果数据库文件太大,可以备份成压缩包
#mysqldump -u root -p yyy | gzip > test.sql.gz
系统崩溃,重建系统时,可以这样恢复数据(下面这两点还没验证):
#mysql -u root -p yyy < test.sql
从压缩文件直接恢复:
#gzip < test.sql.gz | mysql -u root -p yyy
下面是在win平台上
dos 下导入sql.文件数据库
C:\Documents and Settings\beeboo>mysql -h localhost -u root -p (所用导入的数据库名字) < “C:\Do
ments and Settings\beeboo\桌面\…\test.sql”
Enter password: ******(密码)
在dos下mysqldump备份。
首先进入 mysql的安装目录找到bin\mysqldump,用cd d:\安装目录\bin
然后运行 mysqldump –opt 所需备份的数据库名 >保存路径和所要备份后的数据库名
mysqldump –opt first >d:\dd.sql
或者用 mysqldump –opt -uroot(数据库名字) -p密码 first >d:\fi.sql
(另一种方法)
@ECHO OFF
d:\mysql5\bin\mysqldump –add-drop-table –add-locks -c -l -uroot -p-p密码 数据库名> e:\database\…\test.sql
–add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
–add-drop-table
在每个create语句之前增加一个drop table。
@ECHO OFF 是执行命令时不显示这条命令
-l 为开始导出锁定表
-c 使用完整的insert语句(用列名字)。
我觉得前面应该加个 –quick (还有待验证)
@ECHO OFF
d:\mysql5\bin\mysqldump –quick –add-drop-table –add-locks -c -l -uroot -p密码 数据库名 > e:\database\…\test.sql
因为 运行mysqldump 没有 –quick 或 –opt选项,mysqldump 会将整个结果先写到内存中,如果备份一个大的数据库,这可能是一个问题。
—————下面这种方法还没尝试过
1、
win下可使用类似如下语句处理。通过命令行进入mysql/bin所在目录。
D:\usr\mysql41\bin>mysqldump -uroot -p –quick –compatible=mysql40 –default-character-set=latin1 –extended-insert=FALSE test2 > d:\zzz.sql
test2是你想导出数据的数据库名,d:\是路径,设置成你希望的路径就行了,zzz.sql是随意命名的文件,名称随意,只要有.sql后缀名就行了。
程序会提示你输入root的用户密码(如果存在密码的话),输入,程序开始导出。500MB的数据2-3分钟就完成了。
2、第二步,通过phpmyadmin建立一个新库,库名:test ,采集字符集设定为utf8-general-li 或gb2312
3、将备份出来的sql文件导入新数据库。
D:\usr\mysql41\bin>mysql -uroot -p –default-character-set=utf8 test < d:/zzz.sql
或
D:\usr\mysql41\bin>mysql -uroot -p –default-character-set=gb2312 test < d:\zzz.sql
这一步花的时间相对较长,200MB数据花了10分钟左右
在
在
Pingback 引用通告: jegakumu
哥哥,你这是啥评论啊