MYSQLLOGIN="major_user"
MYSQLPASSWORD=`echo -e time | md5sum | sed 's/[^[:alnum:]]\+//g'`
# set SQL user and password
killall mysqld
sleep 2
# запускаемся без пароля
${PHPMYSQLPATH}/mysql/bin/mysqld_safe --skip-grant-tables --user=root --bind-address=127.0.0.1 &
echo "GRANT ALL PRIVILEGES ON db_terminal.* TO '${MYSQLLOGIN}'@'localhost' IDENTIFIED BY '${MYSQLPASSWORD}' WITH GRANT OPTION; FLUSH PRIVILEGES;" | ${PHPMYSQLPATH}/mysql/bin/mysql -u root
# Запуск службы MySQL
cd ${PHPMYSQLPATH}/mysql
nice -n 20 ${PHPMYSQLPATH}/mysql/bin/mysqld_safe --user=mysql --bind-address=127.0.0.1 &
скрипт вроде нормально выполняется, но пользователь не создается, из консоли запускаю GRANT - все нормально отрабатывает.
Суть в том, что мне нужно без ввода пароля создать юзера, скрипт выполняется под root
может дело в --skip-grant-tables он просто не дает создать нового юзера?
${PHPMYSQLPATH}/mysql/bin/mysqld_safe --skip-grant-tables --user=root --bind-address=127.0.0.1 &
sleep 2
echo "FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON db_terminal.* TO '${MYSQLLOGIN}'@'localhost' IDENTIFIED BY '${MYSQLPASSWORD}' WITH GRANT OPTION; " | ${PHPMYSQLPATH}/mysql/bin/mysql -u root
подсмотрел в другом пакете, оказывается у них есть предустановленный пользователь с паролем 1234, как говорится дверь на замке но стены и нету :) причем если поменять пароль этого юзера, то его все равно сбросят при инстале другие пакеты. короче жесть, единственное он смотрит только на 127.0.0.1 (на улицу вроде нет), но все равно это явная дыра :)
тем не менее я решил сделать "как все"
# set SQL user and password
${PHPMYSQLPATH}/mysql/bin/mysql -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on db_terminal.* to ${MYSQLLOGIN}@localhost identified by '${MYSQLPASSWORD}'" > /dev/null 2>&1
if [ $? -ne 0 ] ; then
# if fail, reset zyadmin
${PHPMYSQLPATH}/mysql/bin/reset_zyadmin
${PHPMYSQLPATH}/mysql/bin/mysql -u zyadmin --password=1234 -e "grant ALL PRIVILEGES on db_terminal.* to ${MYSQLLOGIN}@localhost identified by '${MYSQLPASSWORD}'" > /dev/null 2>&1
fi
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший