предварительно настройте пустой пароль для mysql через debconf-set-selections
я настраиваю скрипт bash для автоматизации создания среды лампы.
Я использую debconf-set-selections
чтобы установить параметры перед установкой mysql, phpmyadmin и т. д...
Он работает в основном большие. Но проблема в том, что я обязательно установите пустой пароль для mysql, и он по-прежнему запрашивает пароль во время установки даже с набранными строками:
echo "mysql-server-5.5 mysql-server/root_password password" | debconf-set-selections
echo "mysql-server-5.5 mysql-server/root_password_again password" | debconf-set-selections
4 ответов
EDIT: этот ответ ниже предлагает возможное решение, которое может работать для Ubuntu 15.10, однако оно не удалось для меня на Ubuntu 14.04.
в настоящее время невозможно напрямую установить пустой пароль для mysql-server
во время процесса установки с помощью debconf-set-selections
, но есть способы обойти эту проблему и заставить пустой пароль, тем не менее.
прямой подход предварительной настройки пароля к пустая строка завершается ошибкой, потому что:
-
на
config
скрипт, который считывает пароль из базы данных сразу же задает свой!--6--> флагfalse
как только он обнаруживает, что пароль установлен в пустую строку:db_input high mysql-server/root_password || true db_go db_get mysql-server/root_password # if password isn't empty we ask for password verification if [ -z "$RET" ]; then db_fset mysql-server/root_password seen false db_fset mysql-server/root_password_again seen false break fi
на
config
скрипт выполняется несколько раз в процессе установки.
таким образом, предварительная настройка пароля на пустую строку влияет только на первое выполнение config
скрипт, начиная с seen
флаг установлен до true
в этот момент времени, в то время как дальнейшие вызовы того же скрипта отображают вопрос пользователю, как значение seen
флаг уже был установлен до false
, когда они исполняются.
тем не менее, можно предотвратить debconf
от задавать вопросы вообще другими средствами, но эти методы применяются ко всем вопросам, а не только к связанным с паролем. Например, любое из следующих действий пароль пустой:
-
Set
debconf
фронтенд кnoninteractive
:DEBIAN_FRONTEND=noninteractive apt-get install [-y] [-q] mysql-server
-
Set С
critical
:DEBIAN_PRIORITY=critical apt-get install [-y] [-q] mysql-server
это, вероятно, предпочтительнее, поскольку это позволяет отображать критические сообщения.
в настоящее время это можно сделать это, но это немного сложно.
вы должны явно установить кавычки, чтобы отметить пустой пароль, как это:
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password \"''\""
только что проверил в Ubuntu 15.10, работает как шарм.
Я думаю, что ваша проблема заключается в том, что прямо перед "паролем" вам нужно добавить слово "строка" следующим образом:
echo "mysql-server-5.5 mysql-server/root_password string password" | debconf-set-selections
кстати, это делает то же самое, но я думаю, что это круто:
debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password string password"
попробуйте добавить пустой аргумент
echo mysql-server-5.5 mysql-server/root_password password "" | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password "" | debconf-set-selections