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
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой