4
0

install_ts3db.sh 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. # LGSM install_ts3db.sh function
  3. # Author: Daniel Gibbs
  4. # Contributor: PhilPhonic
  5. # Website: https://gameservermanagers.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 1
  15. ldd ${filesdir}/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 1
  27. read -p "Enter MariaDB hostname: " mariahostname
  28. read -p "Enter MariaDB port: " mariaport
  29. read -p "Enter MariaDB username: " mariausername
  30. read -p "Enter MariaDB password: " mariapassword
  31. read -p "Enter MariaDB database name: " mariadbname
  32. echo "updating config."
  33. echo "[config]" >> ${servercfgdir}/ts3db_mariadb.ini
  34. echo "host='${mariahostname}'" >> ${servercfgdir}/ts3db_mariadb.ini
  35. echo "port='${mariaport}'" >> ${servercfgdir}/ts3db_mariadb.ini
  36. echo "username='${mariausername}'" >> ${servercfgdir}/ts3db_mariadb.ini
  37. echo "password='${mariapassword}'" >> ${servercfgdir}/ts3db_mariadb.ini
  38. echo "database='${mariadbname}'" >> ${servercfgdir}/ts3db_mariadb.ini
  39. echo "socket=" >> ${servercfgdir}/ts3db_mariadb.ini
  40. sed -i "s/dbplugin=ts3db_sqlite3/dbplugin=ts3db_mariadb/g" "${servercfgfullpath}"
  41. sed -i "s/dbpluginparameter=/dbpluginparameter=ts3db_mariadb.ini/g" "${servercfgfullpath}"
  42. sed -i "s/dbsqlcreatepath=create_sqlite\//dbsqlcreatepath=create_mariadb\//g" "${servercfgfullpath}"
  43. echo "================================="
  44. sleep 1
  45. }
  46. if [ -z "${autoinstall}" ]; then
  47. echo ""
  48. while true; do
  49. read -e -i "n" -p "Do you want to use MariaDB/MySQL instead of sqlite (Database Server including user and database already has to be set up!)? [y/N]" yn
  50. case $yn in
  51. [Yy]* ) fn_install_ts3db_mariadb && break;;
  52. [Nn]* ) break;;
  53. * ) echo "Please answer yes or no.";;
  54. esac
  55. done
  56. else
  57. fn_print_warning_nl "./${selfname} auto-install is uses sqlite. For MariaDB/MySQL use ./${selfname} install"
  58. fi
  59. ## Get privilege key
  60. echo ""
  61. echo "Getting privilege key"
  62. echo "================================="
  63. sleep 1
  64. echo "IMPORANT! Save these details for later."
  65. sleep 1
  66. cd "${executabledir}"
  67. ./ts3server_startscript.sh start inifile=ts3-server.ini
  68. sleep 5
  69. ./ts3server_startscript.sh stop