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.
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:
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:
-e ACCEPT_EULA=Yindicates that you agree to Microsoft’s EUA (End User Licence Agreement).
-e SA_PASSWORDis 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.
-pflag allows the 1433 to be used as the TCP port number.
--namesets the instance name to sqlserver2019.
-druns 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:
- CREATE DATABASE MyDatabase
- SELECT Name from sys.Databases
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!