Cài đặt SQL Server 2019 cho Mac

Giới thiệu

Để bắt đầu làm quen và học quản lý cơ sở dữ liệu với ngôn ngữ SQL thì chúng ta cần có một database và một ứng dụng quản lý database. Có nhiều loại database nổi tiếng nhưng để bắt đầu học thì sử dụng Microsoft SQL Server là dễ tiếp cận nhất. Tuy không được hỗ trợ nhiều như Windows nhưng Mac vẫn có nhiều ứng dụng thay thế rất xịn xò để cài SQL Server trên Mac và quản lý database trên Mac, đó là Docker và Azure.

Cài đặt SQL Server trên Mac bằng Docker

Để tạo một SQL Server ngay trên Mac thì công cụ được nhiều người giới thiệu nhất là Docker. Trước hết bạn cần kiểm tra xem Mac của bạn là chip Intel hay Apple M1 nhé.

Mac chip Apple M1

Theo thông tin từ trang hướng dẫn của Docker, nếu bạn đang sử dụng Mac chip Apple M1 thì bạn cần cài đặt Rosetta 2 vì một số mã nhị phân của ứng dụng này vẫn là Darwin / AMD64.
Bạn bấm mở ứng dụng Terminal có sẵn trên Mac (dùng Command Space để tìm Terminal) > dán dòng code bên dưới rồi Enter > nhập A để đồng ý điều khoản:
          softwareupdate --install-rosetta

Tải và cài đặt Docker

Bước 1: Bạn nhấp vào link để tải Docker cho Mac, hãy chọn đúng phiên bản dành cho Mac của bạn nhé.
Bước 2: Bạn mở file cài đặt Docker lên > kéo thả icon Docker vào thư mục Applications (Ứng dụng).
Bước 3: Bạn mở Docker lên > vào Cài dặt > Resources > tăng Memory lên khoảng 4GB. Thông số này không ít cũng không nhiều, phù hợp cho một SQL Server đơn giản.
Tạm thời bạn ẩn Docker xuống và chúng ta tiến hành cài đặt SQL Server theo hướng dẫn bên dưới.

Khởi tạo SQL Server (Azure SQL Edge)

Bước 1: Bạn mở Terminal > dán đoạn code dưới dây và Enter > nhập mật khẩu mở máy (trong lúc nhập nó sẽ không hiển thị gì cả, cứ nhập đúng là được) và Enter: sudo docker pull mcr.microsoft.com/azure-sql-edge:latest
Bước 2: Bạn tiếp tục dán đoạn code bên dưới vào Terminal và Enter > nhập mật khẩu mở máy và Enter.
          sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Strong.Pwd-123' -p 1433:1433 --name sqledge -d mcr.microsoft.com/azure-sql-edge

Bạn có thể thay Strong.Pwd-123 thành mật khẩu khác mà bạn muốn.
Lưu ý: Mật khẩu của SQL Server yêu cầu như sau:
  • Ít nhất 8 ký tự.
  • Có chữ thường, chữ in, số, và ký tự đặc biệt.
Trong trường hợp bạn muốn đổi mật khẩu sau khi đã tạo SQL Server thì bạn dùng lệnh này trong Terminal: 
      sudo docker exec -it sqledge /opt/mssql-tools/bin/sqlcmd \
      -S localhost -U SA -P "<Old_Password>" \
      -Q 'ALTER LOGIN SA WITH PASSWORD="<New_Password>"'
Bước 3: Kiểm tra Docker Container
Đảm bảo rằng container Azure SQL Edge đang chạy đúng cách: docker ps
Nếu vì lý do nào đó mà container của bạn không hoạt động, hãy thử lệnh sau: docker start sqledge
Thay thế sqledge bằng tên container của bạn. Với việc thiết lập và chạy container, bây giờ chúng ta có thể tiếp tục và kết nối với SQL Edge.

Cài đặt Azure Data Studio trên Mac

Azure Data Studio là một ứng dụng dạng portable (không cần cài dặt, mở lên là dùng) của Microsoft và nó được thiết kế chỉ để làm việc với Microsoft SQL Server hoặc Azure SQL Server.
Bước 1: Bạn tải Azure Data Studio cho Mac bằng link > tải file zip ở dòng macOS.
Bước 2: Bạn nhấp đúp vào file zip để giải nén > mở Azure Data Studio lên > nhấp vào Add Connection hoặc Create a connection > nhập thông tin kết nối SQL Server như sau:
  • Server: localhost, [port number] (port ở đây là cái port mà mình đã thiết đặt lúc tạo container đó, nếu không nhớ thì cứ mở terminal lên rồi gõ docker ps là thấy). Trường hợp này là localhost, 1433.
  • Authentication type: SQL login
  • User name: sa
  • Pass: Strong.Pwd-123


Vậy là đã ổn phần cài đặt, giờ mình viết thử vài câu query thử xem sao, để bắt đầu viết truy vấn liền thì các bạn trỏ vào mục New Query.
Sau khi nhấn New Query thì cứ đợi cỡ 5s. Sau 5s thì các bạn thử viết câu truy vấn nào đó rồi thử Run xem sao, trong ảnh dưới là mình đã thử ghi vài ba câu truy vấn, từng mũi tên là các output tương ứng (sau khi viết xong thì các bạn F5 hoặc là click run như chỗ mũi tên màu vàng chỉ vào như hình dưới).
Các bạn nhớ bấm Command + S, để lưu thành một file .sql hoàn chỉnh khi viết xong.

Thao tác với DB mẫu

Import cơ sở dữ liệu mẫu vào SQL Server bằng Azure Data Studio

Mở terminal và nhập lệnh sau: docker cp <vị trí lưu database mẫu> <container_id>:/var/opt/mssql/data
Như trường hợp của mình sẽ là:
Để kiểm tra container_id, vào terminal mà gõ docker ps là thấy.
Quay lại Azure Data Studio thôi, click vào localhost, 1433, <default> (sa), sau khi click vào thì chọn phần Restore .
Sau khi click vào Restore xong thì chọn tới mục Restore from rồi chọn mục Backup file trong dropdown list như hình bên dưới.
Tiếp đến là Backup file path, click vào dấu ba chấm như trong hình.
Sau khi click vào thì thấy hiện cửa sổ bên phải như hình dưới. Giờ thì kiếm cái file database mẫu. Hồi nãy chúng ta chạy bằng lệnh cp copy vào cái đường dẫn thư mục /var/opt/mssql/data. Nên thử kiếm xem nó có nằm trong cái đường dẫn đó không.
Xong rồi bấm OK, tiếp theo chọn Restore nữa là xong.
Sau khi bấm Restore xong thì Azure Data Studio sẽ trở ra màn hình localhost ban đầu. Lúc này thì các bạn refresh lại cái localhost, 1433; chuột trái vào chỗ localhost, 1433, <default>(sa) rồi click refresh.
Kiểm tra xem database mẫu có chưa, nếu có rồi thì bắt tay vào thực hành.
Click vào New Query rồi chọn cái mục AdventureWorks2019, sau khi chọn đúng cái AdventureWorks2019 thì có thể viết truy vấn vào database mẫu được rồi.
Thử viết: SELECT * FROM Person.CountryRegion