我试图从Laravel vagrant homestead连接我的本地/主机SQL Server。我一整天都在谷歌上搜索连接主机的数据库,安装不同的PHP软件包,但到目前为止还没有运气。我想我会在这一点上删除PHP,并尝试使用sqlcmd在宅基中建立连接。
所以,我在homestead中安装了sqlcmd
,并尝试执行以下命令连接到主机的数据库。
sqlcmd -S 10.0.2.2,1433 -U sa -P 'password' -Q "sp_databases"
但是,我收到以下错误:
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection because an error was encountered during handshakes before login. Common causes include client attempting to connect to an unsupported version of SQL Server, server too busy to accept new connections or a resource limitation (memory or maximum allowed connections) on the server..
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection due to prelogin failure.
但是,如果我在主机上使用sqlcmd
并执行以下命令,则可以访问数据库。
sqlcmd -S LAPTOP-ACQES\MSSQL2017 -U sa -P Asdf1234 -Q "sp_databases"
在我的Homestead.yaml中,我已经设置了端口转发:
ports:
- send: 1433
to: 1433
答案 0 :(得分:0)
你说这不起作用:
sqlcmd -S 10.0.2.2,1433 -U sa -P 'password' -Q "sp_databases"
然而这样做:
sqlcmd -S LAPTOP-ACQES\MSSQL2017 -U sa -P Asdf1234 -Q "sp_databases"
在前者中,您使用的是IP,但没有实例名称。
尝试:
sqlcmd -S 10.0.2.2\MSSQL2017 -U sa -P 'password' -Q "sp_databases"
此外: 确保SQL网络配置中的TCP/IP is enabled。
验证SQL Server Browser是否正在运行。
允许SQL Server属性中的远程连接。
将SQL网络配置锁定到所有适配器上的端口1433,并禁用动态端口(然后重新启动服务)。