flyonok

统计

留言簿(8)

ACE

book

boost

bsd

c study

c++

code download

codeblock

computer clound

Eclipse

embed system

erlang

ET++

gtk

ic card

java

KDE

libevent

linux

linux--MM

mysql

network education

one card

oracle

pcap relation

php

powerbuilder

python

QT

software config

software test

SQL server

UML

wireless

wxwidgets

陈宾

阅读排行榜

评论排行榜

mysqldump的使用--解决不能导出视图的问题

在一个项目的使用过程中,数据库的设计使用了视图;在产品上线的过程中,发现同事恢复的数据库出现了问题,测试人员发现试图中没有数据,而视图基于的表是有数据的,开始以为是关联的字段没有相关匹配出现空数据。后来随着测试的进行,发现以前通过的测试用例不能通过,开发人员说根本就没改过代码;个人觉得问题应该出现在数据库这块,把创建试图的sql语句的select部分通过mysql的客户端执行下,发现有不少数据;然后用show create view 'my view name',系统提示错误,用show tables发现该视图确实存在,用show create table 'my view name',屏幕上出现了‘create table ...’的字样,这个时候基本上知道了是恢复数据库的时候数据库结构发生了变化;找到备份后的数据库文件看了下,果然把view当成table备份了;经过一番查资料和动手操作,总结了以下步骤,希望能帮助大家(环境是linux+mysql):
1、在需要备份的数据库服务器上用命令 mysqldump -u root -p --skip-opt --skip-comments --complete-insert 'your db name' > 'your file name';这个命令会把你的数据库结构和相关数据都导出来,如果你只要数据库结构,可以用以下命令:mysqldump -u root -p -d --skip-opt --skip-comments --complete-insert 'your db name' > 'your file name';
2、把备份后的文件通过scp等安全传送工具传送到相关的数据库服务器上,我一般使用winscp;
3、在服务上用 mysql -u 'db user name' -p 进入服务器;
4、create database 'your db name' character set utf8;
5、set names utf8;
6、source 'your file name';
7、系统会提示成功;
这个时候用select * from 'your view name';发现数据显示出来了。

posted on 2010-07-10 16:25 flyonok 阅读(10511) 评论(0)  编辑 收藏 引用 所属分类: mysql


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理