DEV Community

Masui Masanori
Masui Masanori

Posted on

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

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 "