mysql 数据逻辑备份与恢复(1)

760阅读 0评论2014-03-06 initrdimg
分类:Mysql/postgreSQL

   我们小组有一个wiki,在两天在做wiki的数据库备份恢复工作,也让自己对mysql的使用稍微好了些.不得不说mysql的docs写的是会意体.感觉还是命令后加--help 帮助更大. 
   这里用的是逻辑备份,就是导出sql语句,物理备份暂时没有研究.两条指令 mysqldump 和mysqlimport.字面意思就是mysql导出导入.
   遇到的第一个问题,就是密码的事情,要使用-p参数,而且密码要么紧跟着 -p 要么-p留空, 我要写在脚本里的用crontab备份,密码的加密就是一个问题.现在还没有解决.可以使用expect ? 我还没搞定这个问题.
   第二个问题,是在恢复导入的时候,居然无法创建表,而我用的是导出的创建表语句.令人伤心.报的错误是
  1. ERROR 1064 at line 353: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'from varchar(15) NOT NULL default '
原来是表里面的列名有问题,叫做from,问题迎刃而解,修改这个列吧.(我更想知道,这个列是怎么创建上去的),
后来备份是搞定了.最终的备份脚本是这样的:
  1. DATE=`date +%Y%m%d%H`
  2. mysqldump -h xxxxxx -uroot -pssssss wiki --opt --no-data --default-character-set=latin1 > $DATE.no_data.sql
  3. mysqldump -h xxxxxx -uroot -psssssss wiki --opt --no-create-info --default-character-set=latin1 >$DATE.data.sql

“--opt” 参数,就相当于同时加上了如下参数:

--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick

指定字符集

--default-character-set=gbk

通常选择 gbk、utf8 或 latin1

逻辑恢复问题.

 




上一篇:Mysql_binlog备份恢复模式
下一篇:从innodb中恢复数据