Most of my work involves collaborating with engineers and product managers to improve the performance, security, and manageability of workloads that are running on Red Hat Enterprise Linux (RHEL). The vast majority of those I encounter in my work are built on databases that are used to store the structured data associated with those workloads.
Software architects will often explore the next generation of operating platforms in advance of their release since it can help them to understand how new technology may benefit the various application workloads in their organizations. Looking at commercial databases on a beta version of a major release of a platform like RHEL can be tricky because the software provider may still be working on changes required to fully support their software on the new platform. Because of this, customers are sometimes unable to test a key application until the vendor has completed their certification process which can be months after a major new operating system platform becomes available.
Microsoft SQL Server 2017 has been available for production workloads on RHEL 7 since October 2 of 2017. For RHEL 8 Beta, we’ve worked closely with Microsoft to accelerate performance and provide a wider range of programming languages and application frameworks that can provide powerful choices as you look to build your next application.
One of the best ways to understand the impact of these changes is to try them out, but RHEL 8 is still beta software, and SQL Server 2017 is not supported on it for production use. If you’d like to try out SQL Server on RHEL 8 Beta, this post will help you get it running, but you should not use it in a production environment until Red Hat Enterprise Linux 8 becomes generally available and Microsoft provides their officially supported RHEL 8 package.
One of the core goals for Red Hat Enterprise Linux is to provide a stable, consistent runtime environment for third-party applications. To support this, Red Hat preserves application compatibility for specific APIs and kernel interfaces. When we move to a new major release, there are typically some deliberate differences in package names, new versions of libraries and new utilities that may cause complications for existing applications that target a prior release. Software vendors can create binaries on Red Hat Enterprise Linux 7 if they follow Red Hat guidelines that will run on Red Hat Enterprise Linux 8, but the packaging is a different matter. Software packaged for Red Hat Enterprise Linux 7 will not be supported on Red Hat Enterprise Linux 8.
SQL Server 2017 on Red Hat Enterprise Linux 7 makes use of python2 and OpenSSL 1.0. These steps should give you an environment which is compatible with those two components which have moved to more recent versions on RHEL 8 Beta. Their inclusion by Red Hat was a deliberate step to preserve backward compatibility.
sudo yum install python2 sudo yum install compat-openssl10
We now need to deal with the defaults for python on the system. As explained by Langdon White last November, Red Hat Enterprise Linux 8 can support both python2 and python3 binaries simultaneously, but by default, there is no /usr/bin/python
command. We need to make python2 the default interpreter so that SQL Server 2017 can see /usr/bin/python
as it expects. We do this with:
sudo alternatives --config python
The command prompts me to select a Python version and will create a symlink that persists across upgrades.
There are 3 programs which provide python
'
Selection Command ----------------------------------------------- * 1 /usr/libexec/no-python + 2 /usr/bin/python2 3 /usr/bin/python3 Enter to keep the current selection[+], or type selection number:
Select option 2 and it will create a symlink from /usr/bin/python2
to /usr/bin/python
.
We can now configure the system to use the Microsoft SQL Server 2017 software repository via the curl
command:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
At this point, we’re ready to download the SQL Server 2017 installation using the new download feature of yum. We do this so that we can install it without trying to resolve dependencies:
sudo yum download mssql-server
And install it without resolving dependencies using rpm
:
sudo rpm -Uvh --nodeps mssql-server*rpm
At this point you can proceed with a normal SQL Server installation as described in the Microsoft’s Quickstart: Install SQL Server and create a database on Red Hat starting with step 3:

Once installed, you can verify the installed version of SQL Server by running the command:
# yum list --installed | grep mssql-server
Containers Can Be Easier!
With the upcoming SQL Server 2019 this can get easier, because that version is planned to be available for RHEL as a container. SQL Server 2019 is already in Beta. To try it out on RHEL 8 Beta takes three steps:
First, we create a persistent storage directory where we can keep our SQL data. For this example, I’ll just use a /var/mssql
directory.
sudo mkdir /var/mssql sudo chmod 755 /var/mssql
Now we the SQL 2019 Beta container down from the Microsoft Container Repository with:
sudo podman pull mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2
Finally, we configure SQL. In this case, we’ll set the SA account password for a database named sql1 running on ports 1401 through 1433.
sudo podman run -e 'ACCEPT_EULA=Y' -e \ 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \ --name 'sql1' -p 1401:1433 -v /var/mssql:/var/opt/mssql:Z -d \ mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2
To learn more about podman and containers in Red Hat Enterprise Linux 8 Beta see the documentation here.
Either Way Works!
Using the steps in this post can try out RHEL 8 Beta and SQL Server 2017 with the traditional OS install or the container-based one. Either way, you should now have a working SQL Server instance. From here, you can move on to creating database content and exploring the tools available in RHEL 8 Beta to create an application stack, automate setup and improve performance.
Be sure to join me along with Microsoft’s Bob Ward, Principal Architect for the Microsoft Database Systems Group, for our talk, “Deploy a modern data platform with SQL Server 2019 on Red Hat Enterprise Linux 8 Beta” at Red Hat Summit 2019.
저자 소개
Louis Imershein is a Product Manager at Red Hat focussed on Microsoft SQL Server and database workloads. He is responsible for working with Microsoft and Red Hat engineering to ensure that SQL Server performance, management, and security is optimized for Red Hat platforms. For more than 30 years, Louis has worked in technical support, engineering, software architecture, and product management on a wide range of OS, management, security, and storage software projects. Louis joined Red Hat as part of the acquisition of Permabit Technology Corporation, where he was VP of Product.
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.