DEV Community

Masui Masanori
Masui Masanori

Posted on

17

Try SQL Server on Fedora

Intro

I will try installing Microsoft SQL Server on Fedora 39 in this time.
After installing, I will try accessing it from my Spring Boot application.

Environments

  • Fedora Linux 39(Workstation Edition)
  • SQL Server 2022
  • openjdk 17.0.9 2023-10-17(Red_Hat-17.0.9.0.9-2)

Installing

According to the document, there is no SQL Server installing for Fedora.
So I will add repositories first.

sudo dnf config-manager --add-repo=https://packages.microsoft.com/config/rhel/9/mssql-server-2022.repo
sudo dnf config-manager --add-repo=https://packages.microsoft.com/config/rhel/9/prod.repo

sudo dnf check-update
sudo dnf -y install mssql-server mssql-tools
Enter fullscreen mode Exit fullscreen mode

After installing, I will execute setting up command.

sudo /opt/mssql/bin/sqlservr-setup
Enter fullscreen mode Exit fullscreen mode

Opening the port to accept access from another PC.

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
Enter fullscreen mode Exit fullscreen mode

Adding "mssql-tools" path into .bashrc.

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

After installing SQL Server, I will also install DBeaver to access it by GUI tool.

sudo rpm -Uvh ./dbeaver-ce-23.3.0-stable.x86_64.rpm
Enter fullscreen mode Exit fullscreen mode
CREATE TABLE users (id bigint identity(1, 1) primary key,
    name varchar(32) not null,
    last_update_date datetimeoffset default current_timestamp AT TIME ZONE 'Tokyo Standard Time');
    go
Enter fullscreen mode Exit fullscreen mode

Access SQL Server from my Spring Boot project

To access SQL Server from my Spring Boot project, I will add Microsoft JDBC Driver for SQL Server.

build.gradle

...

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.apache.poi:poi:5.2.5'
    implementation 'org.apache.poi:poi-ooxml:5.2.5'
    implementation 'com.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11'

    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
...
Enter fullscreen mode Exit fullscreen mode

UserAccessSample.java

package jp.masanori.springbootsample.users;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class UserAccessSample {
    public String accessSample() {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String connectionUrl = "jdbc:sqlserver://localhost;encrypt=false;database=master;integratedSecurity=false;user=sa;password=PASSWORD";
            Connection con = DriverManager.getConnection(connectionUrl);
            String SQL = "SELECT * FROM users";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);

            while (rs.next()) {
                System.out.println(
                        rs.getInt("id")
                                + ", " + rs.getString("name"));
            }
            return "OK";
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "NG";
    }
}
Enter fullscreen mode Exit fullscreen mode

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (2)

Collapse
 
akeem_louigarde_e65f388db profile image
Akeem Louigarde

Hey Masui I checked for the sqlservr-setup file and it wasn't there. By any chance do you have a copy to send it my way or do you have an idea of where I can find it?

Collapse
 
rafael_d517cc36809aa6a8e7 profile image
Rafael

Try " sudo /opt/mssql/bin/mssql-conf setup "

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs