我们小组有一个wiki,在两天在做wiki的数据库备份恢复工作,也让自己对mysql的使用稍微好了些.不得不说mysql的docs写的是会意体.感觉还是命令后加--help 帮助更大.
这里用的是逻辑备份,就是导出sql语句,物理备份暂时没有研究.两条指令 mysqldump 和mysqlimport.字面意思就是mysql导出导入.
遇到的第一个问题,就是密码的事情,要使用-p参数,而且密码要么紧跟着 -p 要么-p留空, 我要写在脚本里的用crontab备份,密码的加密就是一个问题.现在还没有解决.可以使用expect ? 我还没搞定这个问题.
第二个问题,是在恢复导入的时候,居然无法创建表,而我用的是导出的创建表语句.令人伤心.报的错误是
- 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,问题迎刃而解,修改这个列吧.(我更想知道,这个列是怎么创建上去的),
后来备份是搞定了.最终的备份脚本是这样的:
- DATE=`date +%Y%m%d%H`
-
mysqldump -h xxxxxx -uroot -pssssss wiki --opt --no-data --default-character-set=latin1 > $DATE.no_data.sql
-
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
逻辑恢复问题.
阅读(2443) | 评论(3) | 转发(1) |