mysql库文件的复制
单位的数据库是oracle9i和oracle8的,想迁移到mysql的我的当地库上,便于我的学习和使用。
当然,本人在oracle和mysql上都是25,所以只能不停的在baidu搜索,学习。
1、首先就是搜索什么样的关键词能找到我的答案,一开始使用些oralce转mysql,迁移,复制,导出、备份等字眼。顺便了解了一下oracle如何导出,mysql如何导出导入。并且找到了intelligent oracle to mysql软件。导出很傻瓜化,但是字符集有问题。导出的数据在mysql中是乱码。
2、解决字符集,通过baidu知道了oracle的server\client\dump字符集应该一致,是gbk。而自己的mysql默认大部分是latin1,所以不成,但即使我最后把mysql的字符集都换成了gbk,仍然出现乱码。
发现解决的办法。用intelligent oracle to mysql直接将orale转成mysql dump的.sql文件,在windows下可以识别。然后用mysql的source aaa.sql导入到数据库,不显示乱码的问题解决了。
分析可能是oracle展成.sql时,windows的介入,使得字符集的转换隐蔽化了。
3、复制data的下的数据库目录,到新的机器上,提示没有找到表,尽管可以show出tables;努力尝试的两次,带数据和不带数据都没有成功。但复制过来的mysql库却可以直接使用。
如果是MyISAM类型的表应该是没有问题的。但如果是InnoDB类型的表就有问题,因为这种类型的表是不可以直接复制的,表中的数据与具体的事务相关。show tables只会判断数据目录中是否存在该文件,存在就会将该文件的名称作为表明显示出来,但不检查物理数据是否可用。
还没有经过验证,但我想会解决的。
4、原来的jsp与oracle的连接,我的目的是改成jsp与mysql的,家里的直接用com.jdbc.mysql.Driver就可以了,什么mm.Driver用不了。单位mysql5.0的两个驱动都提示找不到,baidu认为是没有找到驱动包,接着从mysql上下载了对应的connector,放到了webinf/lib,成功了。
5,jsp与mysql的连接仍然使用的是webinf/classes下的db.properties,改一下就成了,不过连接名不能改,有的javabean里已经固定使用sqlserver这个名字了。sqlserver=jdbc:mysql://localhost:3306/test。