(没有从我在MySQL的论坛帖子相同的反应,所以我希望能在这里更好的运气)

我试图迁移MS SQL数据库的朋友。我没有对机器的物理访问,也没有得到管理员权限 - 只需一个读/写用户

在XP中使用“SQL Server管理快车”,我可以轻松登录使用的IP /用户/密码。我可以浏览表,运行查询。容易。

当我火了迁移工具包,选择MS SQL和尝试连接时,我得到以下错误:

  

----连接到源数据库并检索图式的名字。初始化   JDBC驱动程序... Driver类MS SQL   JDBC驱动程序打开连接...   连接   JDBC:JTDS:SQLSERVER:// MYSERVERIP:1433 / MYDATABASE;用户=名为myUsername;密码= MYPASSWORD;字符集= UTF-8;结构域=   模式名的清单不可能   检索(错误:0)。   ReverseEngineeringMssql.getSchemata   :登录失败,用户名为myUsername“。   细节:   net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)   net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)   net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)   net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:599)   net.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java:331)   net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50)   net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)   java.sql.DriverManager.getConnection(未知   资源)   java.sql.DriverManager.getConnection(未知   资源)   com.mysql.grt.modules.ReverseEngineeringGeneric.establishConnection(ReverseEngineeringGeneric.java:141)   com.mysql.grt.modules.ReverseEngineeringMssql.getSchemata(ReverseEngineeringMssql.java:99)   sun.reflect.NativeMethodAccessorImpl.invoke0(母语   方法)   sun.reflect.NativeMethodAccessorImpl.invoke(未知   资源)   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知   资源)   java.lang.reflect.Method.invoke(未知   资源)   com.mysql.grt.Grt.callModuleFunction(未知   源)

     

任何想法?我已经三检查登录细节,没有骰子。我缺少一个驱动程序?是服务器设置怪异?不知道在哪里从这里走。

预先感谢。

<强>更新 我下载并使用相同的SQL身份验证信息......这告诉我这是不是服务器运行DBVisualizer中(也使用JDBC)和连接的罚款,并没有花哨的东西MSFT回事。

仍然不知道下一步该怎么做,虽然...

有帮助吗?

解决方案

我看到,有一个博客几乎相同的错误描述

http://house9.blogspot.com/2007/12 /mysql-migration-toolkit.html

此外,为了运行该工具,你需要的访问权限

主INFORMATION_SCHEMA

我会建议执行查询(这应该由你的管理员来完成)

use [master]
GO
GRANT SELECT ON SCHEMA::[INFORMATION_SCHEMA] TO [MYUSERNAME]
GO
use [master]
GO
GRANT VIEW DEFINITION ON SCHEMA::[INFORMATION_SCHEMA] TO [MYUSERNAME]
GO

最后,如果您授予这些权利,但你有同样的错误,然后问你的系统管理员来运行SQL事件探查器,然后运行你的工具,看看查询它试图执行什么SQL或安全例外情况的存在(如任何)

其他提示

请确认您的SQL服务器 “听” IP,TCP协议和端口1433。

尝试执行

telnet server_ip_addres 1433

如果telnet窗口将被关闭 - SQL服务器不听的IP,端口或TCP。如果你有“SQL Server配置管理”或服务器的注册表的访问,可以直观地找到所需的信息(配置管理 - 协议,TCP / IP,IP地址,端口),并根据需要进行正确的连接字符串。万一链接JDBC驱动程序文档,您正在使用。

我觉得有缺失的权利到SQL Server的特定数据库或表。 我用DTS迁移有同样的问题一时间前。

用户需要读权限的MSDB或sysdtspackag表。

我觉得你的问题是类似的“架构名称的列表无法检索”也许你的用户对某些系统表足够的权限。

在连接字符串是否包含参数值的特殊(非字母数字)字符?如果是这样,尝试URL编码它们(如/ =>%2F)和/或将它们括在括号{}

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top