#!/bin/bash # Detect OS type if [ -f /etc/os-release ]; then . /etc/os-release OS_NAME=$NAME OS_VERSION=$VERSION_ID fi echo "Detected OS: $OS_NAME $OS_VERSION" # Function to install SQL Server on Ubuntu install_sqlserver_ubuntu() { sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y sudo do-release-upgrade sudo apt update && sudo apt install libc6 sudo apt install libgnutls30 libsasl2-2 sudo apt upgrade libsasl2-2 sudo apt upgrade libgnutls30 sudo apt upgrade libc6 # sudo apt install curl wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb sudo apt upgrade libldap-2.5-0 # Add Microsoft SQL Server repository for Ubuntu using wget wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list #wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-server.list # Update repository and install SQL Server sudo apt update && sudo apt install -y mssql-server # Run the setup to configure SQL Server sudo /opt/mssql/bin/mssql-conf setup # Enable SQL Server to start on boot sudo systemctl enable mssql-server # (Optional) Open SQL Server port for remote access sudo ufw allow 1433/tcp # (Optional) Install SQL Server command-line tools wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt update && sudo apt install -y mssql-tools unixodbc-dev # wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-release.list # sudo apt update # sudo apt install -y mssql-tools unixodbc-dev # Add mssql-tools to PATH echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc # Verify installation sqlcmd --? } # Function to install SQL Server on CentOS install_sqlserver_centos() { # Remove any existing mssql-server repo sudo rm -f /etc/yum.repos.d/mssql-server.repo # Add Microsoft SQL Server repository for CentOS using wget sudo wget -qO /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo # Clean all dnf caches and make a new one sudo dnf clean all sudo dnf makecache # Install SQL Server Express sudo dnf install -y mssql-server # Run the setup to configure SQL Server sudo /opt/mssql/bin/mssql-conf setup # Enable SQL Server to start on boot sudo systemctl enable mssql-server # (Optional) Open SQL Server port for remote access sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload # (Optional) Install SQL Server command-line tools wget -qO- https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo sudo yum remove -y mssql-tools unixODBC-utf16 unixODBC-utf16-devel sudo yum install -y mssql-tools18 unixODBC-devel sudo dnf install -y msodbcsql18 # Add mssql-tools to PATH echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile source ~/.bash_profile # Verify installation sqlcmd -? } # Check the OS type and call appropriate function if [[ "$OS_NAME" == "Ubuntu" || "$OS_NAME" == "Debian" ]]; then echo "Installing Microsoft SQL Server on Ubuntu..." install_sqlserver_ubuntu elif [[ "$OS_NAME" == "CentOS Linux" || "$OS_NAME" == "Red Hat" || "$OS_NAME" == "Fedora" ]]; then echo "Installing Microsoft SQL Server on CentOS..." install_sqlserver_centos else echo "Unsupported OS. This script is designed for Ubuntu or CentOS." exit 1 fi # Finished echo "SQL Server installation completed successfully!" # # https://www.geeksforgeeks.org/how-to-install-sql-server-express-in-linux/ # # https://learn.microsoft.com/en-us/answers/questions/1685683/how-to-install-sql-server-2022-on-ubuntu-server-24 # curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb # sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb # curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb # sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb # #First upgrade ubuntu to fix libc packaging issues. # #Then # # sudo apt --fix-broken install # # sudo apt upgrade libsasl2-2 # sudo apt upgrade libgnutls30 # # sudo apt upgrade libldap-2.5-0 # # sudo apt --fix-broken install # sudo apt --fix-broken install # sudo apt upgrade libsasl2-2 # sudo apt update && sudo apt install -y libldap-2.5-0 # sudo apt install libldap-common # #curl -OL http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb # #sudo apt-get install ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb #SQL SERVER # wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - # wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list # curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list # # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)” # # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)” # sudo apt update && sudo apt install -y mssql-server # sudo /opt/mssql/bin/mssql-conf setup # #sudo systemctl status mssql-server.service # sudo systemctl status mssql-server --no-pager # sudo ldd /opt/mssql/bin/sqlservr # curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list # sudo apt update && sudo apt install -y mssql-tools unixodbc-dev # sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin # sqlcmd -S localhost -U SA # setfacl -R -m u:mssql:rwx ~/elvt/pgsys/elixir-data/dbs/elixir/run # SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName # FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0; # # Install redis # # https://docs.vultr.com/how-to-install-redis-on-ubuntu-24-04 # sudo apt install redis-server # sudo systemctl enable redis-server.service # sudo systemctl start redis # # sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [ELIXIR_DEV] FROM DISK = N'/home/elvt/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5" # cp /home/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' /tmp # sqlcmd -S localhost -U sa -Q "RESTORE DATABASE ELIXIR FROM DISK = '/tmp/reduced_elixir_backup' WITH MOVE 'Elixir' TO '/var/opt/mssql/data/elixir.mdf', MOVE 'Elixir_log' TO '/var/opt/mssql/data/elixir_log.ldf'"