Установите MySQL на Ubuntu без запроса пароля

261

Как написать script для установки сервера MySQL на Ubuntu?

sudo apt-get install mysql будет установлен, но он также попросит ввести пароль в консоли.

Как мне сделать это неинтерактивным способом? То есть напишите script, который может предоставить пароль?

#!/bin/bash
sudo apt-get install mysql  # To install MySQL server

# How to write script for assigning password to MySQL root user
# End
Теги:
apt

4 ответа

354
Лучший ответ
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password your_password'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password your_password'
sudo apt-get -y install mysql-server

Для определенных версий, таких как mysql-server-5.6, вам нужно указать версию следующим образом:

sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password password your_password'
sudo debconf-set-selections <<< 'mysql-server-5.6 mysql-server/root_password_again password your_password'
sudo apt-get -y install mysql-server-5.6

Замените your_password нужным корневым паролем. (кажется, ваш_password также может быть пустым для пустого пароля root.)

Если ваша оболочка не поддерживает здесь - строки (zsh, ksh93 и bash поддерживают их), используйте:

echo ... | sudo debconf-set-selections 
  • 1
    Обязательно измените часть mysql-server-5.1 на текущую версию mysql!
  • 0
    С поправкой, спасибо!
Показать ещё 19 комментариев
209

Это должно сделать трюк

export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get -q -y install mysql-server

Конечно, он оставляет вас с пустым паролем root, поэтому вы хотите запустить что-то вроде

mysqladmin -u root password mysecretpasswordgoeshere

Затем добавьте пароль в учетную запись.

  • 11
    это не работает для меня.
  • 3
    Протестировано и работает в новом экземпляре Ubuntu 12.04 с MySQL 5.5
Показать ещё 19 комментариев
21

Другой способ заставить его работать:

echo "mysql-server-5.5 mysql-server/root_password password root" | debconf-set-selections
echo "mysql-server-5.5 mysql-server/root_password_again password root" | debconf-set-selections
apt-get -y install mysql-server-5.5

Обратите внимание, что это просто устанавливает пароль в "root". Я не мог заставить его установить пустой пароль, используя простые кавычки '', но этого решения было достаточно для меня.

На основе решения здесь.

  • 1
    echo 'mysql-server-5.5 mysql-server / пароль root_password' | sudo debconf-set-selections позволяет указать пустой пароль для меня.
  • 3
    @TsuneoYoshioka не работает для меня. Если я ставлю два пробела в конце, он устанавливает мой пароль на один пробел. С одним пробелом он все еще пытается выдать подсказку, а затем испортит установку.
1

Использование:

sudo DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server

sudo mysql -h127.0.0.1 -P3306 -uroot -e"UPDATE mysql.user SET password = PASSWORD('yourpassword') WHERE user = 'root'"
  • 0
    Спасибо! определение переменных за пределами sudo всегда меня заводит.
Сообщество Overcoder
Наверх
Меню