我正在尝试将 Laravel 11 连接到 Mac OS Sonoma M1 上的 Microsoft Azure SQL Server
在我尝试在 Docker 上安装 Microsoft Azure SQL Server Edge(作为带有 M1 芯片的 Mac OS 的 Microsoft SQL Server 替代方案)之前,我按照来自 https://dev.to/avwerosuoghene/installing-ms-sql-server- 的教程进行操作on-mac-m1-chip-30d0 一步一步直到成功,现在工作正常。
也在我使用带有命令的终端测试连接之后
mssql -u SA -p MyPassword
已连接并且工作正常。
然后我尝试下载 Azure Data Studio 作为 SQL Server 数据库的 GUI 界面,然后尝试通过该 GUI 进行连接,再次成功连接并且工作正常。
顺便说一句,计算机名称是afb6f21ec9ac,如上图所示,如果我在终端上运行命令:docker ps
我已使用本教程在 Mac 上安装了适用于 SQL Server 的 Microsoft Driver for PHP 8.2.0(SQLSRV 和 PDO_SQLSRV):https://github.com/Braineee/microsoft-driver-on-mamp-for-mac/blob /master/README.md,直到成功完成并且它工作正常。
使用 phpinfo() 可以看到 SQLSRV 和 PDO_SQLSRV 是否安装成功
然后我尝试将 SQL Server (Azure Edge) 与 Laravel 11 连接
这是我在 .env 上的数据库连接配置
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_PORT=1433
DB_DATABASE=MyDatabase
DB_USERNAME=SA
DB_PASSWORD=MyPassword
但是当我尝试使用 php artisan 命令显示数据库或迁移数据库来测试 Docker 上的 Laravel 11 和 SQL Server (Azure) 之间的连接时,出现 错误 !! 并给我一些 错误消息 !!
仅供参考,我正在使用:
请帮助我,为什么我可以通过终端和数据库 GUI 连接数据库但无法通过 laravel 连接,尽管我已经安装了 Microsoft Driver For PHP 8.2.0 和 SQL Server (SQLSRV & PDO_SQLSRV) ??
感谢您的帮助:)
我在这里找到了答案:Laravel 10 停止使用 SQL Server 数据库
这就是答案,@bjauy 给出了两个我可以选择的选项:
我选择了最后一个,所以我注释掉了 vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php 上的 PDO::ATTR_STRINGIFY_FETCHES
我还更改 SESSION_DRIVER=数据库到.env 上的SESSION_DRIVER=文件
现在它工作正常,我可以使用使用 M1 芯片安装在 MacOS Sonoma 本地的 Microsoft Azure SQL Server Edge,通过 Laravel 11 在我的桌子上选择、插入、更新和删除数据