Установите MySQL на Ubuntu без подсказки пароля
Как написать 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
Ответы
Ответ 1
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
Замените your_password на нужный пароль root. (кажется, ваш_пароль также можно оставить пустым для пустого пароля root.)
Если ваша оболочка не поддерживает здесь-строки (zsh, ksh93 и bash поддерживают их), используйте:
echo ... | sudo debconf-set-selections
Ответ 2
Это должно сделать трюк
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get -q -y install mysql-server
Конечно, он оставляет вас с пустым паролем root, поэтому вы хотите запустить что-то вроде
mysqladmin -u root password mysecretpasswordgoeshere
Затем добавьте пароль в учетную запись.
Ответ 3
Другой способ заставить его работать:
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". Я не мог заставить его установить пустой пароль, используя простые кавычки ''
, но этого решения было достаточно для меня.
На основе решения здесь.
Ответ 4
Использование:
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'"