SQL Server on Linux: Boring

Home / SQL Server 2016 / SQL Server on Linux: Boring

As a concept, SQL Server on Linux is thrilling. Due to this, the OS doesn’t stand in the way of taking advantage of everything that SQL Server offers. Because we have Linux, we have opportunity for all sorts of new fun.

I first saw SQL Server running on Linux about six months ago. The install was shockingly easy. I saw a few command line commands run and it all looked good. I didn’t have the opportunity to set up my own full blown install then, but I do now.

My Installation

Today I did all the work necessary to get this thing running. I got a copy of Ubuntu Desktop and put it on VMWare Workstation in a virtual machine. That was a painless process. SIDE NOTE: It was a painless process because VMWare recognized the OS I was installing therefore was able to help me set it up. Full props to VMWare.

The SQL Server install from the terminal went very well. After a few typos on my part, done. I got the IP address of the machine, swapped back over to a VM running Windows that had SSMS installed. Then, I connected up and it all just…. worked…

Redgate SQL Compare connected to Linux

Suddenly though, it was boring. I tested a few Redgate tools (SQL Compare is right there above, connected to Linux) to be sure they worked. No major issues encountered. Great. However, now, it’s just another instance of SQL Server.

I guess I could start complaining that SQL Agent isn’t there… except I’m not that big a fan of SQL Agent, and I can schedule all sorts of stuff to run in Linux using the sqlcmd command line tool.

I find it actually thrilling and exciting that SQL Server on Linux is boring. SQL Server on Linux is an early community preview and it’s already dull. Consequently, the boredom, dullness, just the plain old ordinariness of it, means that Microsoft has done a good job.


  • I had much the same experience. I made the strategic decision to move our tech stack from Linux a couple of years ago but we still had some Windows dependencies – .NET software and SQL Server. The first was taken care of with Mono (after a bit of pain I am now pretty comfortable with it and since I made the move MS have released .NET Core to offer their own official approval). But that left me with the large MSSQL db that powers most of the back end services. Anyhow, I spun this up the other night and tried it on one of our web databases and – it worked with no problems! I’m not bothered about the agent either myself – it’s easy fixed with sqlcmd and cron jobs 🙂

  • Tony Fritz

    I haven’t installed it yet, but the fact that I can get a FREE (as in beer) OS to run a SQL Server instance on that just works is amazing. I’ve been a huge fan of linux since the early days, I think I even have a RedHat 4 Halloween edition cd around here somewhere. Opening SQL Server to this market is a great move on MS’s part.

  • Thanks for the feedback Matthew. It was all so easy, I really did kind of just lose interest in it. Nice to know my experience is shared.

    I agree Tony. Microsoft is doing some really exciting stuff these days.

  • @ Grant

    I meant to comment about the install – you’re right it’s so much easier! I couldn’t get it to work on Ubuntu 14.04 at first – there’s an issue with open ssl requiring 1.0.2 which I did install but it still wouldn’t run. But then I fired up 16.04 and it’s a simple apt-get install. That’s what I love about Linux – the package management for servers is way ahead of Windows. I’m not sure what you’re experience was but the install literally took me seconds.

  • Nico Jacobs

    I found something that doesn’t work on my Linux SQL Server: Power BI Desktop live query. The data shows correctly in the query editor, but as soon as I drag it in a Power BI report it throws an error… Don’t know why, now testing on a VNext on windows to see if it’s due to Linux or due to the VNext…

  • Another very exciting move by Microsoft. As a SQL DBA we’re still not familiar to Linux world. However, there are lot of developments are going on that side with specially Docker based development. Now SQL Server is part of that development strategies. I’ve installed SQL Server on Mac using Docker container and it was super easy. Installation took me about 2 minutes. I’ve a blog post of this installation.

  • Joseph Walker

    very easy install into a virtual box vm on OS X Sierra
    used a local network – was able to connect via the Xcode sql environment and easily create databases tables etc
    tried to connect from query analyser (really old) from an old xp vm and could not connect due to ssl certificate problems

    generally a very easy and solid oobe

  • It’s interesting (and great) that it’s boring!

    I’m curious about this:

    “and I can schedule all sorts of stuff to run in Linux using the sqlcmd command line tool.”

    Are you using cron to do the actual scheduling, calling sqlcmd within the scheduled job? Or have I missed something?

  • Robert,

    Good question. I’m not sure I have a really good answer. VMWare is my preferred mechanism. At work or at home, it depends on what you have available for licenses to run up a VM on it. There is a free player option, but I haven’t used it: http://www.vmware.com/products/vsphere-hypervisor.html

    Microsoft has Hyper-V that you can get access to an intro-level hypervisor for no cost. It’s my second choice.

    Third choice is Virtual Box, currently owned by Oracle.

    Those are all choices for doing VMs locally. However, a better way to do a lot of testing and training would be to use VMs on Azure. You can pretty easily spin them up there. If you have an MSDN license, you get a credit on Azure that you can use to run your VMs.

    I hope that helps.

  • Kevin Parks

    I just hope it is better supported than running Oracle on windows. If you ever call Oracle for support on a windows server it gets ugly.

  • Well, you may not like Agent, but it’s essential to good DB work. You simply can’t rely on an OS scheduler for all your DB tasks. Agent has some useful reporting and workflow features and we can code against it fairly easily to get status, history, etc. So while it’s not perfect, I won’t be moving my workloads to any OS scheduler anytime soon.

OK, fine, but what do you think?