В настоящее время я не могу подключиться к серверу MSSQL, который я использую в док-контейнере на моем Mac-ноутбуке, используя любые инструменты CLI или pyodbc. Целью является подключение к базе данных и взаимодействие с ней с помощью pyodbc. Странно, но с помощью Azure Data Studio я могу подключиться без проблем.
Я следовал следующим двум урокам, чтобы установить сервер Sql на мой Mac, а затем восстановить старую резервную копию существующего сервера.
https://database.guide/how-to-install-sql-server-on-a-mac/
https://database.guide/how-to-restore-a-sql-server-database-on-a-mac-using-azure-data-studio/
Предложение Microsoft sqlcmd для меня не сработало
sqlcmd -S <ip_address>,1433 -U SA -P '<YourNewStrong!Passw0rd>'
что было задокументировано здесь: https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash
когда я впервые установил докер, я не увеличивал выделение памяти до 4 ГБ. Я сделал это после запуска моего контейнера и перезапустил контейнер и сам Mac. Насколько я понимаю, эта память должна быть доступна для этого контейнера сейчас.
Я пробовал mssql, sqlcmd, pyodbc с различными параметрами соединения, но ни один из них у меня не работает.
Я МОГУ подключиться через Azure Data Studio со следующей информацией о подключении:
Тип подключения: Microsoft SQL Server
Сервер: localhost, 1401
Тип аутентификации: Sql Login
Имя пользователя: sa
пароль:
Основываясь на моем успехе во взаимодействии с базой данных через ADS, я предполагал, что есть ошибки в параметрах соединения, которые я передаю инструментам CLI, но на данный момент я думаю, что попробовал почти каждую перестановку Я могу думать о. Я включил некоторые попытки подключения и ошибки, которые они выдают
Я читал много других билетов на github и переполнение стека, похоже, что обычные причины этой проблемы - люди, не запускающие свой контейнер или не использующие достаточно сложный PW. Это не относится к моим обстоятельствам.
$ sqlcmd -S 172.17.0.2,1433 -U SA -P <TestPW123$>
Результат:
SqlState HYT00, Login timeout expired
HResult 0x102, Level 11, State 0
TCP Provider: Error code 0x102
HResult 0x102, Level 11, State 0
A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
$ sqlcmd -S localhost,1433 -U SA -P <TestPW123$>
РЕЗУЛЬТАТ:
sqlcmd(992,0x112ef45c0) malloc: can't allocate region
*** mach_vm_map(size=18446744073709527040) failed (error code=3)
$ mssql -s localhost -o 1433 -u sa -p <TestPW123$>
Результат:
Connecting to localhost...
Error: Failed to connect to localhost:1433 - connect ECONNREFUSED 127.0.0.1:1433