install_ts3db.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. # LinuxGSM install_ts3db.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: PhilPhonic
  5. # Website: https://linuxgsm.com
  6. # Description: Installs the database server MariaDB for TeamSpeak 3.
  7. local commandname="INSTALL"
  8. local commandaction="Install"
  9. local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  10. fn_install_ts3db_mariadb(){
  11. echo ""
  12. echo "checking if libmariadb2 is installed"
  13. echo "================================="
  14. sleep 0.5
  15. ldd "${serverfiles}/libts3db_mariadb.so" | grep "libmariadb.so.2 => not found"
  16. if [ $? -eq 0 ]; then
  17. echo "libmariadb2 not installed. Please install it first."
  18. echo "exiting..."
  19. exit
  20. else
  21. echo "libmariadb2 installed."
  22. fi
  23. echo ""
  24. echo "Configuring ${gamename} Server for MariaDB/MySQL"
  25. echo "================================="
  26. sleep 0.5
  27. read -rp "Enter MariaDB hostname: " mariahostname
  28. read -rp "Enter MariaDB port: " mariaport
  29. read -rp "Enter MariaDB username: " mariausername
  30. read -rp "Enter MariaDB password: " mariapassword
  31. read -rp "Enter MariaDB database name: " mariadbname
  32. {
  33. echo "updating config."
  34. echo "[config]"
  35. echo "host='${mariahostname}'"
  36. echo "port='${mariaport}'"
  37. echo "username='${mariausername}'"
  38. echo "password='${mariapassword}'"
  39. echo "database='${mariadbname}'"
  40. echo "socket="
  41. } >> "${servercfgdir}/ts3db_mariadb.ini"
  42. sed -i "s/dbplugin=ts3db_sqlite3/dbplugin=ts3db_mariadb/g" "${servercfgfullpath}"
  43. sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
  44. sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
  45. echo "================================="
  46. sleep 0.5
  47. }
  48. if [ -z "${autoinstall}" ]; then
  49. echo ""
  50. if fn_prompt_yn "Do you want to use MariaDB/MySQL instead of sqlite? (DB must be pre-configured)" N; then
  51. fn_install_ts3db_mariadb
  52. fi
  53. else
  54. fn_print_warning_nl "./${selfname} auto-install is uses sqlite. For MariaDB/MySQL use ./${selfname} install"
  55. fi
  56. ## License
  57. fn_script_log "Accepting ts3server license: ${executabledir}/LICENSE"
  58. fn_print_information_nl "Accepting TeamSpeak license:"
  59. echo " * ${executabledir}/LICENSE"
  60. sleep 0.5
  61. touch "${executabledir}/.ts3server_license_accepted"
  62. ## Get privilege key
  63. echo ""
  64. echo "Getting privilege key"
  65. echo "================================="
  66. sleep 0.5
  67. echo "IMPORANT! Save these details for later."
  68. sleep 0.5
  69. cd "${executabledir}" || exit
  70. ./ts3server_startscript.sh start inifile=ts3-server.ini
  71. sleep 5
  72. ./ts3server_startscript.sh stop