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.

59 line
1.8KB

  1. #!/bin/bash
  2. echo "Permissions"
  3. chown -R mysql:mysql /var/lib/mysql
  4. # set root password from secret
  5. if [ ! -z $MYSQL_ROOT_PWD_FILE -a -f $MYSQL_ROOT_PWD_FILE ]; then
  6. MYSQL_ROOT_PWD=`cat $MYSQL_ROOT_PWD_FILE`;
  7. fi
  8. if [ ! -z $MYSQL_ROOT_PWD ]; then
  9. # start server
  10. echo "Starting server"
  11. /usr/bin/mariadbd-safe --datadir='/var/lib/mysql' & #--skip-grant-tables &
  12. pid="$!"
  13. echo "Mysql pid: $pid"
  14. mysql=( mysql )
  15. for i in {30..0}; do
  16. if echo 'SELECT 1' | "${mysql}" &> /dev/null; then
  17. break
  18. fi
  19. echo 'MySQL init process in progress...'
  20. sleep 1
  21. done
  22. if [ "$i" = 0 ]; then
  23. echo >&2 'MySQL init process failed or there already was data with a root password set.'
  24. fi
  25. # Allow access from outside
  26. #echo "INSERT INTO mysql.user (Host, User) VALUES ('%', 'root');" | "${mysql}"
  27. echo 'GRANT ALL PRIVILEGES ON *.* TO "root"@"%" WITH GRANT OPTION;' | "${mysql}"
  28. # set root password
  29. echo "Setting root password"
  30. #/usr/bin/mysqladmin -u root flush-privileges password "$MYSQL_ROOT_PWD"
  31. echo "USE mysql;" | "${mysql}"
  32. echo "ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;" | "${mysql}"
  33. echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$MYSQL_ROOT_PWD');" | "${mysql}"
  34. echo "FLUSH PRIVILEGES;" | "${mysql}"
  35. #echo "SET PASSWORD FOR 'root' = PASSWORD('$MYSQL_ROOT_PWD');" | "${mysql}"
  36. if [ $? != 0 ]; then
  37. echo >&2 'MySQL root password setting failed.'
  38. #exit 1
  39. fi
  40. # Stop server
  41. echo "Stopping server"
  42. #if ! kill -s TERM "$pid" || ! wait "$pid"; then
  43. if ! mysqladmin -u root -p"$MYSQL_ROOT_PWD" shutdown || ! wait "$pid"; then
  44. echo >&2 'MySQL stop process failed.'
  45. #exit 1
  46. fi
  47. fi
  48. echo "Restarting server"
  49. /usr/bin/mariadbd-safe --datadir='/var/lib/mysql'