Laravel 11 在 Mac OS Sonoma M1 上连接 Microsoft Azure SQL Server

问题描述 投票:0回答:1

我正在尝试将 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

已连接并且工作正常

connection success via terminal

然后我尝试下载 Azure Data Studio 作为 SQL Server 数据库的 GUI 界面,然后尝试通过该 GUI 进行连接,再次成功连接并且工作正常

connect via Azure Data Studio (Database GUI)

Successfully connected via Azure Data Studio

顺便说一句,计算机名称是afb6f21ec9ac,如上图所示,如果我在终端上运行命令:docker ps

run command on termnial: 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 是否安装成功

sqlsrv on phpinfo()

pdo_sqlsrv on phpinfo()

然后我尝试将 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) 之间的连接时,出现 错误 !! 并给我一些 错误消息 !!

Error php artisan db:show

Error php artisan migrate

仅供参考,我正在使用:

  1. PHP 8.2.0
  2. Mamp Pro 6.8
  3. Microsoft Azure SQL Server EDGE(数据库)
  4. Microsoft Azure Data Studio 1.48.0(GUI)
  5. Mac OS Sonoma 14.5,带 M1 芯片
  6. Docker 4.30.0
  7. Laravel 11.8.0
  8. Docker 容器 ID:afb6f21ec9ac
  9. 服务器本地主机/127.0.0.1端口1433
  10. 数据库名称:MyDatabase
  11. 数据库用户名:SA
  12. 数据库密码:我的密码
  13. Laravel 项目文件夹:MyLaravel

请帮助我,为什么我可以通过终端和数据库 GUI 连接数据库但无法通过 laravel 连接,尽管我已经安装了 Microsoft Driver For PHP 8.2.0 和 SQL Server (SQLSRV & PDO_SQLSRV) ??

感谢您的帮助:)

php sql-server laravel docker apple-m1
1个回答
0
投票

我在这里找到了答案:Laravel 10 停止使用 SQL Server 数据库

这就是答案,@bjauy 给出了两个我可以选择的选项:

  1. 降级php版本
  2. 或者暂时注释掉config/database.php的sqlsrv部分和vendor/laravel/framework/src/Illuminate/Database/Connectors/SqlServerConnector.php的$options中的PDO::ATTR_STRINGIFY_FETCHES

我选择了最后一个,所以我注释掉了 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 在我的桌子上选择、插入、更新和删除数据

© www.soinside.com 2019 - 2024. All rights reserved.