Mysql – Login Using MS SQL Express: Success! Migration Toolkit login: fail

databasemigrationMySQLsql server

(no responses from my identical post on the MySQL forums & StackOverflow, so I'm hoping to have better luck here)

I'm trying to migrate a MS SQL database for a friend. I do not have physical access to the machine, nor do I have admin access — just a read/write user.

Using "SQL Server Management Express" in XP, I can easily login using IP/user/password. I can browse tables, run queries. Easy.

When I fire up the Migration toolkit, select MS SQL, and try to connect, I get the following error:

Connecting to source database and retrieve schemata names.
Initializing JDBC driver … Driver
class MS SQL JDBC Driver Opening
connection … Connection
jdbc:jtds:sqlserver://MYSERVERIP:1433/MYDATABASE;user=MYUSERNAME;password=MYPASSWORD;charset=utf-8;domain=
The list of schema names could not be
retrieved (error: 0).
ReverseEngineeringMssql.getSchemata
:Login failed for user 'MYUSERNAME'.
Details:
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(Unknown
Source)
java.sql.DriverManager.getConnection(Unknown
Source)
com.mysql.grt.modules.ReverseEngineeringGeneric.establishConnection(ReverseEngineeringGeneric.java:141)
com.mysql.grt.modules.ReverseEngineeringMssql.getSchemata(ReverseEngineeringMssql.java:99)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
java.lang.reflect.Method.invoke(Unknown
Source)
com.mysql.grt.Grt.callModuleFunction(Unknown
Source)

Any ideas? I've triple-checked the login details, no dice. Am I missing a driver? Is the server setup weird? No idea where to go from here.

Thanks in advance.

Best Answer

Building on squillman's answer - when connecting over TCP/IP, the named instances use different ports, and are most likely using "dynamic ports" (which is the default for SQLEXPRESS). Take a look at the SQL Server 2005 Network Configuration utility to figure out which port it is listening on and connect to that instead of 1433.

Related Topic