Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329347
  • 博文数量: 105
  • 博客积分: 358
  • 博客等级: 一等列兵
  • 技术积分: 444
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-25 23:00
个人简介

爱生活,爱养生 www.sijiyang.com 欢迎朋友来友联

文章分类

全部博文(105)

文章存档

2017年(2)

2016年(2)

2014年(24)

2013年(34)

2012年(39)

2011年(4)

分类: Mysql/postgreSQL

2014-03-06 15:43:36

   我们小组有一个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

逻辑恢复问题.

 




阅读(729) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~