Install SQL Server 2019 on macOS Mojave
Run SQL Server on Mac with Docker

Install SQL Server 2019 on macOS Mojave

Installing with SQL Server on a non-Microsoft platform was not possible prior to the recent release of SQL Server 2017. Many .NET developers who wanted to install & run SQL Server on mac were forced to use a remote server or use a virtualisation technology. With the release of SQL Server 2017, Microsoft made it possible to directly install SQL Server on Unix-based operating systems. Since macOS Mojave is Unix-based, we can directly install SQL Server on it using Docker.

In this post, we will install the preview version of SQL Server 2019 on macOS Mojave using Docker and look at available tools to work with SQL databases.

Install Docker

Unless you already have it installed, download and install Docker Desktop for Mac for free (you might need to login). Once downloaded, double-click & open the .dmg file. Move the Docker icon into Applications folder as shown below:

Installing Docker
Installing Docker

Once installed, make sure docker is running by checking the mac menu bar at the top of the screen. You should see the docker icon. Learn more about Docker.

Download SQL Server 2019

Open the Terminal and execute the following to pull the preview version of SQL Server 2019 container image for Ubuntu.

sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

The container image is a substantial download (~2GB) so it might take a while to download. Go make yourself a coffee in the mean time.

Install SQL Server

Install the downloaded docker image using the following in the terminal.

sudo docker run -e 'ACCEPT_EULA=Y' -e '[email protected]' -p 1433:1433 --name sqlserver2019 -d mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

A few things to note here:

  1. -e ACCEPT_EULA=Y indicates that you agree to Microsoft’s EUA (End User Licence Agreement).
  2. -e SA_PASSWORD is where you set the system administrator password for SQL Server. The password must be at least 8 characters long and contain characters from three of the following four sets: uppercase letters, lowercase letters, numbers & symbols.
  3. -p flag allows the 1433 to be used as the TCP port number.
  4. --name sets the instance name to sqlserver2019.
  5. -d runs docker in deamon mode, used to run the container in the background.

Once the command executes, you can confirm the installation by running docker ps -a

Execute SQL Queries

Microsoft recommends the use of sqlcmd to connect to SQL Server on Mac. Use the following command to start an interactive shell inside your newly installed container:

sudo docker exec -it sqlserver2019 "bash"

Once you are in the container, you can finally connect to SQL Server locally:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '[email protected]'

If successful, you will get >1 response, which allows you to run SQL commands. Execute the following SQL commands one by one:

  1. CREATE DATABASE MyDatabase
  2. SELECT Name from sys.Databases
  3. GO
Testing sql server 2019 on mac
Testing SQL Server 2019 on Mac

You can pretty much run any SQL command using sqlcmd. Although the command line works well, I prefer to use a GUI-based application to manage databases. SQL Server Management Studio is my primary choice for managing databases on Windows but it comes to mac, I use SQLPro for MSSQL nowadays.

So there you have it, you can now work with SQL Server databases natively on your Mac!

Umut Esen

Umut is a certified Microsoft Certified Solutions Developer and has an MSc in Computer Science. He is currently working as a senior software developer for Royal London. He is the primary author and the founder of onthecode.

This Post Has 2 Comments

  1. Craig McDermott

    Great post! I already had 2017 installed but it’s nice to know that 2019 is supported.

  2. I do not even know how Ι ended up here, but I thought this post was great.
    I do not know who you are but certainly you’re
    going too a famous blogger if you are not already 😉

Leave a Reply