登录使用MS SQL快递:成功了!迁移工具包登录:失败?
-
13-09-2019 - |
题
(没有从我在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)和/或将它们括在括号{}
。