Change MySQL engine default to InnoDB

Fixes bug 971881

13Apr2012 - rebased to add Fedora support

Change-Id: Ib93187b4727157cc8dc63cd4599970535c85adce
diff --git a/stack.sh b/stack.sh
index debbc4e..7ec4ee4 100755
--- a/stack.sh
+++ b/stack.sh
@@ -797,15 +797,28 @@
     # Update the DB to give user ‘$MYSQL_USER’@’%’ full control of the all databases:
     sudo mysql -uroot -p$MYSQL_PASSWORD -h127.0.0.1 -e "GRANT ALL PRIVILEGES ON *.* TO '$MYSQL_USER'@'%' identified by '$MYSQL_PASSWORD';"
 
-    # Edit /etc/mysql/my.cnf to change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and restart the mysql service:
+    # Update ``my.cnf`` for some local needs and restart the mysql service
     if [[ "$os_PACKAGE" = "deb" ]]; then
-        MY_CNF=/etc/mysql/my.cnf
+        MY_CONF=/etc/mysql/my.cnf
         MYSQL=mysql
     else
-        MY_CNF=/etc/my.cnf
+        MY_CONF=/etc/my.cnf
         MYSQL=mysqld
     fi
-    sudo sed -i 's/127.0.0.1/0.0.0.0/g' $MY_CNF
+
+    # Change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0)
+    sudo sed -i '/^bind-address/s/127.0.0.1/0.0.0.0/g' $MY_CONF
+
+    # Set default db type to InnoDB
+    if grep -q "default-storage-engine" $MY_CONF; then
+        # Change it
+        sudo bash -c "source $TOP_DIR/functions; iniset $MY_CONF mysqld default-storage-engine InnoDB"
+    else
+        # Add it
+        sudo sed -i -e "/^\[mysqld\]/ a \
+default-storage-engine = InnoDB" $MY_CONF
+    fi
+
     restart_service $MYSQL
 fi