You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

i.sqlexpress.sh 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. #!/bin/bash
  2. # Detect OS type
  3. if [ -f /etc/os-release ]; then
  4. . /etc/os-release
  5. OS_NAME=$NAME
  6. OS_VERSION=$VERSION_ID
  7. fi
  8. echo "Detected OS: $OS_NAME $OS_VERSION"
  9. # Function to install SQL Server on Ubuntu
  10. install_sqlserver_ubuntu() {
  11. sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
  12. sudo do-release-upgrade
  13. sudo apt update && sudo apt install libc6
  14. sudo apt install libgnutls30 libsasl2-2
  15. sudo apt upgrade libsasl2-2
  16. sudo apt upgrade libgnutls30
  17. sudo apt upgrade libc6
  18. # sudo apt install curl
  19. wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
  20. sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
  21. wget http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb
  22. sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb
  23. sudo apt upgrade libldap-2.5-0
  24. # Add Microsoft SQL Server repository for Ubuntu using wget
  25. wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  26. 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
  27. #wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-server.list
  28. # Update repository and install SQL Server
  29. sudo apt update && sudo apt install -y mssql-server
  30. # Run the setup to configure SQL Server
  31. sudo /opt/mssql/bin/mssql-conf setup
  32. # Enable SQL Server to start on boot
  33. sudo systemctl enable mssql-server
  34. # (Optional) Open SQL Server port for remote access
  35. sudo ufw allow 1433/tcp
  36. # (Optional) Install SQL Server command-line tools
  37. wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  38. sudo apt update && sudo apt install -y mssql-tools unixodbc-dev
  39. # wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/prod.repo | sudo tee /etc/apt/sources.list.d/mssql-release.list
  40. # sudo apt update
  41. # sudo apt install -y mssql-tools unixodbc-dev
  42. # Add mssql-tools to PATH
  43. echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
  44. source ~/.bashrc
  45. # Verify installation
  46. sqlcmd --version
  47. }
  48. # Function to install SQL Server on CentOS
  49. install_sqlserver_centos() {
  50. # Remove any existing mssql-server repo
  51. sudo rm -f /etc/yum.repos.d/mssql-server.repo
  52. # Add Microsoft SQL Server repository for CentOS using wget
  53. wget -qO /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
  54. # Clean all dnf caches and make a new one
  55. sudo dnf clean all
  56. sudo dnf makecache
  57. # Install SQL Server Express
  58. sudo dnf install -y mssql-server
  59. # Run the setup to configure SQL Server
  60. sudo /opt/mssql/bin/mssql-conf setup
  61. # Enable SQL Server to start on boot
  62. sudo systemctl enable mssql-server
  63. # (Optional) Open SQL Server port for remote access
  64. sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
  65. sudo firewall-cmd --reload
  66. # (Optional) Install SQL Server command-line tools
  67. wget -qO https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
  68. sudo yum remove -y mssql-tools unixODBC-utf16 unixODBC-utf16-devel
  69. sudo yum install -y mssql-tools18 unixODBC-devel
  70. sudo dnf install -y msodbcsql18
  71. # Add mssql-tools to PATH
  72. echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
  73. source ~/.bash_profile
  74. # Verify installation
  75. sqlcmd --version
  76. }
  77. # Check the OS type and call appropriate function
  78. if [[ "$OS_NAME" == "Ubuntu" || "$OS_NAME" == "Debian" ]]; then
  79. echo "Installing Microsoft SQL Server on Ubuntu..."
  80. install_sqlserver_ubuntu
  81. elif [[ "$OS_NAME" == "CentOS" || "$OS_NAME" == "Red Hat" || "$OS_NAME" == "Fedora" ]]; then
  82. echo "Installing Microsoft SQL Server on CentOS..."
  83. install_sqlserver_centos
  84. else
  85. echo "Unsupported OS. This script is designed for Ubuntu or CentOS."
  86. exit 1
  87. fi
  88. # Finished
  89. echo "SQL Server installation completed successfully!"
  90. # # https://www.geeksforgeeks.org/how-to-install-sql-server-express-in-linux/
  91. # # https://learn.microsoft.com/en-us/answers/questions/1685683/how-to-install-sql-server-2022-on-ubuntu-server-24
  92. # curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
  93. # sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb
  94. # curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb
  95. # sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb
  96. # #First upgrade ubuntu to fix libc packaging issues.
  97. # #Then
  98. # # sudo apt --fix-broken install
  99. # # sudo apt upgrade libsasl2-2
  100. # sudo apt upgrade libgnutls30
  101. # # sudo apt upgrade libldap-2.5-0
  102. # # sudo apt --fix-broken install
  103. # sudo apt --fix-broken install
  104. # sudo apt upgrade libsasl2-2
  105. # sudo apt update && sudo apt install -y libldap-2.5-0
  106. # sudo apt install libldap-common
  107. # #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
  108. # #sudo apt-get install ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb
  109. #SQL SERVER
  110. # wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  111. # 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
  112. # 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
  113. # # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)”
  114. # # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)”
  115. # sudo apt update && sudo apt install -y mssql-server
  116. # sudo /opt/mssql/bin/mssql-conf setup
  117. # #sudo systemctl status mssql-server.service
  118. # sudo systemctl status mssql-server --no-pager
  119. # sudo ldd /opt/mssql/bin/sqlservr
  120. # curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  121. # sudo apt update && sudo apt install -y mssql-tools unixodbc-dev
  122. # sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin
  123. # sqlcmd -S localhost -U SA
  124. # setfacl -R -m u:mssql:rwx ~/elvt/pgsys/elixir-data/dbs/elixir/run
  125. # SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName
  126. # FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0;
  127. # # Install redis
  128. # # https://docs.vultr.com/how-to-install-redis-on-ubuntu-24-04
  129. # sudo apt install redis-server
  130. # sudo systemctl enable redis-server.service
  131. # sudo systemctl start redis
  132. # # 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"
  133. # cp /home/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' /tmp
  134. # 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'"