Trước đây tôi đã giải thích cách cài đặt SQL Server trên máy Mac bằng hình ảnh SQL Server for Linux Docker.
Kể từ đó, Apple đã phát hành chip M1 của mình, sử dụng kiến trúc ARM. Điều này có thể gây ra sự cố khi cố gắng cài đặt SQL Server. Vấn đề là tại thời điểm viết bài, SQL Server không được hỗ trợ trên kiến trúc ARM.
May mắn thay, có một giải pháp thay thế.
Hình ảnh vùng chứa cho Azure SQL Edge có thể được cài đặt trên máy Mac M1. Do đó, chúng tôi có thể sử dụng hình ảnh đó thay vì hình ảnh SQL Server.
Azure SQL Edge là một công cụ cơ sở dữ liệu quan hệ được tối ưu hóa dành cho việc triển khai IoT và IoT Edge. Nó được xây dựng trên các phiên bản mới nhất của SQL Server Database Engine, vì vậy bạn có thể sử dụng mã T-SQL giống như khi sử dụng SQL Server. Bạn cũng có thể sử dụng các công cụ tương tự để truy vấn Azure SQL Edge mà bạn sẽ sử dụng với SQL Server (chẳng hạn như SSMS, Azure Data Studio, v.v.).
Trong bài viết này, tôi cài đặt Phiên bản dành cho nhà phát triển của Azure SQL Edge trên máy Mac có chip M1.
Cài đặt Docker
Khi chúng tôi đang cài đặt SQL Edge thông qua vùng chứa Docker, chúng tôi cần cài đặt Docker.
Nếu bạn chưa có Docker, hãy tải xuống và cài đặt nó, như sau:
- Tải xuống Docker từ trang web Docker. Hãy nhớ tải xuống một cái cho Mac M1 (nút được gọi là
Mac with Apple Chip
khi tôi tải xuống). - Sau khi tải xuống, hãy mở
.dmg
và kéo biểu tượng Docker.app vào thư mục Ứng dụng của bạn theo hướng dẫn. - Khởi chạy Docker giống như cách bạn khởi chạy bất kỳ ứng dụng nào khác (ví dụ:thông qua thư mục Ứng dụng, Launchpad, v.v.). Khi bạn mở Docker, bạn có thể được nhắc nhập mật khẩu của mình. Hãy tiếp tục và cung cấp mật khẩu của bạn vì Docker cần mật khẩu này để chạy.
Cài đặt Azure SQL Edge
Bây giờ Docker đã được cài đặt, chúng ta có thể tiếp tục và cài đặt Azure SQL Edge. Như đã đề cập, điều này sử dụng SQL Server Database Engine và do đó chúng tôi có thể sử dụng nó để chạy các truy vấn T-SQL, v.v., như thể chúng tôi đang truy vấn SQL Server.
Mở cửa sổ Terminal và chạy lệnh sau:
docker pull mcr.microsoft.com/azure-sql-edge
Thao tác đó kéo / tải hình ảnh vùng chứa xuống máy cục bộ của bạn.
Ngoài ra, bạn có thể kiểm tra các tùy chọn vùng chứa trên trang web Docker nếu muốn.
Sau khi quá trình tải xuống hoàn tất, hãy chạy lệnh sau để khởi chạy một phiên bản của hình ảnh Docker mà bạn vừa tải xuống:
sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=bigStrongPwd' -p 1433:1433 --name sqledge -d mcr.microsoft.com/azure-sql-edge
Đảm bảo thay đổi bigStrongPwd
đến một mật khẩu mạnh do bạn lựa chọn. Bạn cũng có thể thay đổi giá trị của --name
nếu bạn muốn.
Theo mặc định, vùng chứa được chạy với Phiên bản dành cho nhà phát triển. Bạn có thể chạy Phiên bản Cao cấp bằng cách thêm -e 'MSSQL_PID=Premium'
.
Kiểm tra Vùng chứa Docker
Chúng ta có thể sử dụng lệnh sau để kiểm tra xem vùng chứa có hoạt động hay không:
docker ps
Kết quả:
a190dd199b17 mcr.microsoft.com/azure-sql-edge "/opt/mssql/bin/perm…" 10 seconds ago Up 9 seconds 1401/tcp, 0.0.0.0:1433->1433/tcp sqledge
Điều này cho tôi thấy rằng trên thực tế, vùng chứa đang hoạt động.
Nếu vì lý do nào đó mà vùng chứa của bạn không hoạt động, hãy thử lệnh sau:
docker start sqledge
Thay thế sqledge
với tên vùng chứa của bạn.
Với việc thiết lập và chạy vùng chứa, bây giờ chúng ta có thể tiếp tục và kết nối với SQL Edge.
Kết nối với SQL Edge
Giờ đây, bạn có thể kết nối với cài đặt Azure SQL Edge của mình bằng cách sử dụng các chi tiết được cung cấp khi khởi chạy hình ảnh Docker.
Đây là ảnh chụp màn hình kết nối với Azure SQL Edge qua Azure Data Studio:
Dưới đây là cách cài đặt Azure Data Studio trên máy Mac.
Microsoft tuyên bố rằng Azure Data Studio “hiện không hỗ trợ kiến trúc ARM” nhưng tôi không gặp vấn đề gì khi cài đặt nó trên máy Mac M1 của mình (tức là với kiến trúc ARM).
Chạy truy vấn SQL
Sau khi kết nối với SQL Edge, bạn có thể tạo cơ sở dữ liệu, chạy truy vấn T-SQL, v.v. (T-SQL là phần mở rộng của SQL Server cho SQL).
Xem hướng dẫn SQL của tôi để bắt kịp tốc độ chạy các truy vấn SQL.
Các tính năng được hỗ trợ trong SQL Edge
Tôi nên đề cập rằng một số tính năng của SQL Server không được hỗ trợ trong SQL Edge. Azure SQL Edge hỗ trợ một tập hợp con các tính năng được hỗ trợ SQL Server 2019 trên Linux.
Điều đó nói rằng, SQL Edge có một số tính năng không khả dụng trong SQL Server (chẳng hạn như DATE_BUCKET()
chức năng).
Xem Các tính năng được hỗ trợ của Azure SQL Edge trên trang web của Microsoft để biết bảng phân tích đầy đủ.