Установите MySQL на Ubuntu без запроса пароля - PullRequest
296 голосов
/ 12 октября 2011

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

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

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

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

# How to write script for assigning password to MySQL root user
# End

Ответы [ 4 ]

426 голосов
/ 12 октября 2011
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

Для mysql-community-server ключи немного отличаются:

sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/root-pass password your_password'
sudo debconf-set-selections <<< 'mysql-community-server mysql-community-server/re-root-pass password your_password'
sudo apt-get -y install mysql-community-server

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

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

echo ... | sudo debconf-set-selections 
235 голосов
/ 12 октября 2011

Это должно сработать

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

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

mysqladmin -u root password mysecretpasswordgoeshere

После этого добавить пароль к учетной записи.

29 голосов
/ 18 ноября 2013

Еще один способ заставить его работать:

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».Я не мог заставить его установить пустой пароль, используя простые кавычки '', но мне было достаточно этого решения.

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

3 голосов
/ 29 июня 2017

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

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'"
...