1. Introduction
Microsoft SQL Server is a powerful relational database management system. This guide covers the installation, configuration, database creation, security settings, and backup automation on Linux.
2. System Requirements
- Ubuntu 20.04 or later / CentOS 7 or later
- At least 2GB RAM and 10GB free disk space
- Administrator (sudo) access
3. Installing Microsoft SQL Server
3.1 Adding the Microsoft Repository
sudo wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)" sudo apt update
3.2 Installing SQL Server
sudo apt install -y mssql-server sudo /opt/mssql/bin/mssql-conf setup sudo systemctl enable --now mssql-server
Follow the on-screen instructions to configure SQL Server settings.
4. Configuring SQL Server
4.1 Installing SQL Server Command-Line Tools
sudo apt install -y mssql-tools unixodbc-dev echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
4.2 Connecting to SQL Server
sqlcmd -S localhost -U SA -P 'YourStrongPassword'
5. Creating and Managing Databases
CREATE DATABASE TestDB; GO USE TestDB; CREATE TABLE Users (ID INT PRIMARY KEY, Name NVARCHAR(50)); GO INSERT INTO Users (ID, Name) VALUES (1, 'Alice'); SELECT * FROM Users; GO
6. Configuring Remote Access
sudo ufw allow 1433/tcp sudo systemctl restart mssql-server
Ensure SQL Server is set to allow remote connections by modifying the configuration file.
7. Setting Up Automated Backups
7.1 Creating a Backup Script
#!/bin/bash TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S") BACKUP_DIR="/var/opt/mssql/backups" /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'YourStrongPassword' -Q \ "BACKUP DATABASE TestDB TO DISK = '$BACKUP_DIR/TestDB_$TIMESTAMP.bak'"
7.2 Automating Backups with Cron
crontab -e 0 2 * * * /path/to/backup_script.sh
This schedules a daily backup at 2 AM.
8. Conclusion
Following this guide, you should now have a fully operational Microsoft SQL Server on Linux, with remote access and automated backups configured.