历时5天,在小孙,老刘,孙师兄和马师兄的帮助下,终于圆满实现将sybase数据导入到mysql里
sqlserver只是个中间介质
有些同学可能和我一样还没有接触过sybase,就像我从老师那里领任务的时候,硬是没听懂sybase是什么
老师给我解释了一下,sybase同sqlserver,mysql一样也是一个数据库
第一天上午,从老师那里领来一个sybase数据库文件,惊奇的是该文件没有后缀,纳闷中
,搜集解决问题的方法,要解决的主要问题就是将sybase的数据内容导入到mysql里,下载相关软件
1,sqlanythere
2,MySQL Sybase SQL Anywhere Import, Export & Convert Software,软件挺好,需要软件1的支持,不过可惜我在添加数据文件到ODBC里的时候,竟然提示我我的数据库文件是无效的,我就囧了。解决不了这个问题,数据库导入问题是无论如何也不能解决的,折腾半天放弃。
3,Excel Sybase SQL Anywhere Import, Export & Convert Software,应该是软件2 的一个扩展,也需要软件1 的支持,所以同样放弃
4,sybase安装软件老师给的有,直接装ASE,不用装什么服务器端,客户端什么的,因为我现在只用把数据导出就行可以了,ASE我现在也不知道它是什么意思,只知道它是sybase数据库
下面开始技术环节,真是多亏了上述几个兄弟的帮忙,虽然这个事没有多大,但我一个人是完成不了的。
先说最开始的问题吧,sybase安装以后,(所有的安装内容均为默认参数)
登陆不了,解决方法,点击adaptive server enterprise,选择utilities,双击右边的server config
出来一个configure sybase servers窗口,点击adaptive server,点击configure adaptive server 一路继续,但注意最后不要save 而是cancel,因为你做任何改变,save的话都需要重启机器才行。
这样在sybase central程序里工具-》连接 user name写sa其他不变点击确定
ok现在可以进入这个新的数据库了
要还原数据,需要先建立一个空的数据库,点击database devices,新建一个device,选择2 驱动,取相应的名字,这里需要注意的是你给这个device的空间的大小需要和你要还原的数据库的属性大小是一样的,否则后面会提示大了或者小了,我这里写3200,一路确定
然后双击databases,点击右边的add database增加一个新的数据库,把你刚建立的device添加到这个数据库上,这里应该也有一个写大小的地方,写上3200,一路确定,ok了
数据库建好了,下一步往里还原数据,这里有个问题,当你右击数据库,选择restore时,会提示不能连接,这是由于备份服务器没有启动或有问题产生的。
继续调出configure sybase servers,在左边选backup server ,右边选remove backupserver,把原来的删了,然后点击第一个create backup server,新建一个,名字默认,在填写net的时候,写127.0.0.1,5001(这里很关键,注意写对端口号,并且端口号前面是个逗号)一切确认,,save,会出现一个finished,
现在再点击restore,就可以正常恢复了。恢复可能需要一段时间。
回复完了,表明可以正常显示,表里的数字和字母可以正常显示,然而中文却成了乱码
我们4个在这里研究了好久,什么iso_1,cp850,cp935,utf,什么的都试过了,然而显示却一直是乱码,
当时都无奈了,小孙后来发现,在命令行环境下,select * from table;返回内容竟然是正常的,看来只是sybase的壳出了问题
所以我们暂时先不管sybase的显示问题了,先把他弄到sqlserver里再说
于是在odbc的数据源里建立新的数据源,注意选择sybase ase odbc driver类型,在network address里要写和你的sybase配置里相同的address。不清楚的话尝试:主机名,5001或127.0.0.1,5001.我开始就是因为这里写的不和sybase里统一,而造成了连接失败,建立号以后,
可以直接用sqlserver2000将该数据源导入。这里都没有问题
之所以用2000是因为之前装东西的时候进行了误操作,导致我的2005装不了,而且小孙说2005里的odbc改动较大,不大方便,DTS不好用,我具体没有试验过。
接下来是从sqlserver导入mysql
这里问题大了。sqlserver里的数据可以正常显示,然而导入mysql后又出现问题了,汉字还是乱码,折腾一下午终于解决了,安装Navicat 8.0 Lite for MySQL软件,打开,连接数据库,
新建数据库,在默认的字符集里选择gbk,否则默认的char字符集为cp850,这将直接导致汉字不能显示
而且,用了这么久才发现,我的数据库里是不支持汉字的,真是罪过了。
此外还需要安装mysql-connector-odbc-3.51.27-win32,也就是mysql的odbc驱动,这样可以在odbc的数据源里建立mysql的数据库数据源,然后再sqlserver里导出数据,一路确定,
这才ok了,不过鉴于原sybase库里有一些表不大规范,会导致导入mysql的时候出错,需要先将这些表搞规范了
再导入,比如int类型会有些文字。。等等,
现在改做着部分工作了,应该会很快吧。come on,