TL;DR:难以识别正确的服务器、用户名和密码组合,从而使用将MySQL连接到现有的MSSQL数据库。我是否需要为迁移创建一个单独的用户,或者是否可以使用MSSQL身份验证在迁移向导中连接到MySQL?
背景和调试步骤
我收到了一个BAK文件,我想要导入到我现有的MySQL安装中。我已经成功地将BAK文件导入到18 (MSSQL)。现在,我正在尝试使用MySQL Workbench 8.0.27中的数据库迁移向导将数据库迁移到MySQL。
我相信我遇到的问题与认证有关。在MSSQL中,我使用Windows身份验证连接到服务器。我的用户名是"AzureAD\ZachLonghofer“,MSSQL负责密码。在MySQL迁移向导中,我使用默认连接方法接收以下消息日志:
Starting...
Connect to source DBMS...
- Connecting to source...
Connecting to Mssql@MS Access Database...
Opening ODBC connection to DSN=MS Access Database;DATABASE=;UID=AzureAD\ZachLonghofer;PWD=XXXX...
ERROR: Connection failed: No open connection to Mssql@MS Access Database
Connecting to Mssql@MS Access Database...
Opening ODBC connection to DSN=MS Access Database;DATABASE=;UID=AzureAD\ZachLonghofer;PWD=XXXX...
ERROR: Connection failed: No open connection to Mssql@MS Access Database
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\wizard_progress_page_widget.py", line 71, in run
self.func()
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 455, in task_connect
raise e
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 439, in task_connect
if not self.main.plan.migrationSource.connect():
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration.py", line 199, in connect
self._rev_eng_module.connect(self.connection, self.password or "")
SystemError: NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect
ERROR: Error during Connect to source DBMS: NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect
ERROR: Exception in task 'Connect to source DBMS': SystemError('NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect')
Failed
我还尝试使用ODBC (本机)并指定Server: ZLONGHOFER\SQLEXPRESS01 01 --这是MSSQL中显示的服务器。使用此配置,我将收到此消息日志,在进行跟踪之前,该日志是相同的:
Starting...
Connect to source DBMS...
- Connecting to source...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...
Traceback (most recent call last):
File "C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\wizard_progress_page_widget.py", line 71, in run
self.func()
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 455, in task_connect
raise e
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 439, in task_connect
if not self.main.plan.migrationSource.connect():
File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration.py", line 199, in connect
self._rev_eng_module.connect(self.connection, self.password or "")
grt.DBLoginError: [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456)
ERROR: Error during Connect to source DBMS: [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456) (SQLDriverConnect);
[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456)
ERROR: Exception in task 'Connect to source DBMS': DBLoginError("[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\\ZachLonghofer'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\\ZachLonghofer'. (18456)")
Failed
Windows身份验证
我使用的密码是我的windows用户密码。我确信我从未为MSSQL设置过密码:我只使用过Windows身份验证,我认为用户名和密码将与我的Windows Login和密码并行,但似乎并非如此。
我还意识到,如果无法使用MySQL身份验证连接到MSSQL,则可能需要在MSSQL中创建用户。如果是这样的话,我需要弄清楚如何在MSSQL中创建一个单独的用户来完成迁移。
我是否需要为迁移创建一个单独的用户,或者是否可以使用MSSQL身份验证在迁移向导中连接到MySQL?
发布于 2022-10-15 09:46:26
TL;DR;
登录Windows计算机时使用Windows身份验证。登录的用户是SSMS使用的相同的用户,这个用户不关心您的密码,仅仅是因为它不需要您已经通过Windows身份验证,并且这个“机制”对于您使用的每个程序都是相同的。
您的问题忽略了最重要的“部分”:连接字符串,或者至少是连接到MsSQL服务器的代码/库。
Microsoft SQL Server (就地)可以以两种模式运行:
在模式1中,您只能使用Windows身份验证登录到Server,只有在模式1上,您可以使用Windows和直接在Server上创建的用户。
从原木上我看到
打开到Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;{SQL DRIVER=的DRIVER=连接
UID和PWD是使用Server身份验证而不是Windows身份验证的症状。
待办事项
Integrated Security=true;
此指定以使用Win Auth 请参见此处的连接字符串。https://stackoverflow.com/questions/74072585
复制相似问题