mariadb.sh (1256B)
1 #!/usr/bin/env bash 2 3 set -o errexit 4 set -o nounset 5 set -o xtrace 6 7 # install mariadb server and tools 8 apt-get install -y mariadb-server mariadb-backup 9 10 # MySql cecure install 11 12 # remove anonymous user 13 mysql -e "DELETE FROM mysql.user WHERE User='';" 14 15 # disallow remote access 16 mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" 17 18 # drop test database 19 mysql -e "DROP DATABASE IF EXISTS test;" 20 21 # set root password and reload privileges 22 mysql -e "UPDATE mysql.user SET Password=PASSWORD('$MYSQL_ROOT_PASSWORD') WHERE User='root'; FLUSH PRIVILEGES;" 23 24 # configure .my.cnf for root 25 cat << EOF > /root/.my.cnf 26 [client] 27 user = root 28 password = $MYSQL_ROOT_PASSWORD 29 EOF 30 31 # add additional users 32 users=($MYSQL_ADDITIONAL_USERS) 33 hosts=($MYSQL_ADDITIONAL_HOSTS) 34 passwords=($MYSQL_ADDITIONAL_PASSWORDS) 35 no_users="${#users[@]}" 36 for ((i = 0 ; i < $no_users ; i++)); do 37 mysql -e "CREATE USER '${users[$i]}'@'${hosts[$i]}' IDENTIFIED BY '${passwords[$i]}';" 38 done; 39 40 # bind 41 #IP_ETH0=$(ip route | grep eth0 | grep src | awk '{print $9}') 42 #HOSTNAME=LXCNAME works as well, but refers to the container that was built last (nslookup LXCNAME) 43 sed -i "s/\(bind.*\) 127.0.0.1/\1 $MYSQL_BIND/g" /etc/mysql/mariadb.conf.d/50-server.cnf