summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2012-03-07 11:02:01 -0500
committerMicah Anderson <micah@riseup.net>2012-03-07 11:02:01 -0500
commite9ff8b6a233ad38b18fd4f64413ef0b89186b78f (patch)
treeb01690dd25e3035273502d76fa2daae30df4eaa9
parente68fdf60f5ddd2c5e3a3ec5cba4730b5124275ed (diff)
parentaf8b414c325dd2454c8fc98e9b1b0829c834c856 (diff)
Merge remote-tracking branch 'lelutin/root_pw_no_arg' into shared
Conflicts: manifests/server/base.pp
-rw-r--r--files/scripts/CentOS/setmysqlpass.sh9
-rw-r--r--files/scripts/Debian/setmysqlpass.sh9
-rw-r--r--manifests/server/base.pp2
3 files changed, 15 insertions, 5 deletions
diff --git a/files/scripts/CentOS/setmysqlpass.sh b/files/scripts/CentOS/setmysqlpass.sh
index d762a20..01d8fbf 100644
--- a/files/scripts/CentOS/setmysqlpass.sh
+++ b/files/scripts/CentOS/setmysqlpass.sh
@@ -1,12 +1,17 @@
#!/bin/sh
-test $# -gt 0 || exit 1
+test -f /root/.my.cnf || exit 1
+
+rootpw=$(grep password /root/.my.cnf | sed -e 's/^[^=]*= *\(.*\) */\1/')
/sbin/service mysqld stop
/usr/libexec/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql/data --log-bin=/var/lib/mysql/mysql-bin &
sleep 5
-echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root
+mysql -u root mysql <<EOF
+UPDATE mysql.user SET Password=PASSWORD('$rootpw') WHERE User='root' AND Host='localhost';
+FLUSH PRIVILEGES;
+EOF
killall mysqld
# chown to be on the safe side
chown mysql.mysql /var/lib/mysql/mysql-bin.*
diff --git a/files/scripts/Debian/setmysqlpass.sh b/files/scripts/Debian/setmysqlpass.sh
index 427daf0..f7d5357 100644
--- a/files/scripts/Debian/setmysqlpass.sh
+++ b/files/scripts/Debian/setmysqlpass.sh
@@ -1,12 +1,17 @@
#!/bin/sh
-test $# -gt 0 || exit 1
+test -f /root/.my.cnf || exit 1
+
+rootpw=$(grep password /root/.my.cnf | sed -e 's/^[^=]*= *\(.*\) */\1/')
/etc/init.d/mysql stop
/usr/sbin/mysqld --skip-grant-tables --user=root --datadir=/var/lib/mysql --log-bin=/var/lib/mysql/mysql-bin &
sleep 5
-echo "USE mysql; UPDATE user SET Password=PASSWORD('$1') WHERE User='root' AND Host='localhost';" | mysql -u root
+mysql -u root mysql <<EOF
+UPDATE mysql.user SET Password=PASSWORD('$rootpw') WHERE User='root' AND Host='localhost';
+FLUSH PRIVILEGES;
+EOF
killall mysqld
sleep 15
# chown to be on the safe side
diff --git a/manifests/server/base.pp b/manifests/server/base.pp
index 7ddff38..5b00ddc 100644
--- a/manifests/server/base.pp
+++ b/manifests/server/base.pp
@@ -55,7 +55,7 @@ class mysql::server::base {
}
exec { 'mysql_set_rootpw':
- command => "/usr/local/sbin/setmysqlpass.sh ${mysql_rootpw}",
+ command => "/usr/local/sbin/setmysqlpass.sh",
unless => "/usr/bin/mysqladmin -uroot status > /dev/null",
require => [ File['mysql_setmysqlpass.sh'], Package['mysql-server'] ],
refreshonly => true,