Як встановити MySQL без запрошення пароля?


26

Я намагаюся встановити MySQL на Ubuntu Natty без запиту пароля. Однак мені постійно пропонується ввести пароль на певному етапі після основної установки.

Крім того, коли я ввожу те, що, на мою думку, має бути моїм паролем (mymysqlpass), він дає мені повідомлення про відмову в доступі. Тоді, коли сценарій припиняється, я можу увійти до mysql без пароля, тобто mysql -uroot, чого не повинно статися.

#!/bin/bash
#This script installs mysql (latest build)
#Install MYSQL Server
mysql_pass=mymysqlpass
export DEBIAN_FRONTEND=noninteractive 
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password password '$mysql_pass''
debconf-set-selections <<< 'mysql-server-5.1 mysql-server/root_password_again password '$mysql_pass''
apt-get -y install mysql-server
#Configure Password and Settings for Remote Access
cp /etc/mysql/my.cnf /etc/mysql/my.bak.cnf
ip=`ifconfig eth0 | grep "inet addr"| cut -d ":" -f2 | cut -d " " -f1` ; sed -i "s/\(bind-address[\t ]*\)=.*/\1= $ip/" /etc/mysql/my.cnf
mysql -uroot -e "UPDATE mysql.user SET Password=PASSWORD('"$mysql_pass"') WHERE User='root'; FLUSH PRIVILEGES;"
sleep 10
mysql -uroot -p$mysql_pass -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '"$mysql_pass"'; FLUSH PRIVILEGES;"
#Restart
service mysql restart
echo "MySQL Installation and Configuration is Complete."

Я був би дуже небезпечний! для чого вам це потрібно?
Паскальські проїзди

6
Коли ви надаєте віртуальні машини, для одного. Якщо ви дійсно переживаєте, я впевнений, що ви можете зробити щось на кшталт створення випадкового криптографічно захищеного пароля і сценарій створити завдання cron, щоб повідомити вам пароль у той момент, коли трафіку мало, і система запустить цю систему. час. Просто переконайтесь, що ви дивитесь на комп'ютер протягом 5 секунд, які ви даєте йому, перш ніж він зникне.
трис

ОП каже: "Я продовжую отримувати запит на пароль", але в його прикладі коду ми маємо два рядки, починаючи з debconf-set-selectionsяких уникнути цього, а це спростувати, тому що я вважаю, що питання та зразок коду були відредаговані в два різні моменти часу, і тепер питання вже не має сенсу.
мастазі

Відповіді:


46

Наступні команди встановлюють пароль для кореневого пароля MySQL strangehatпри встановленні mysql-serverпакета.

echo "mysql-server mysql-server/root_password password strangehat" | sudo debconf-set-selections
echo "mysql-server mysql-server/root_password_again password strangehat" | sudo debconf-set-selections

Зауважте, що при цьому створюється чітка текстова копія вашого пароля в /var/cache/debconf/passwords.dat(який, як правило, читається лише корінцем, і пароль буде видалений системою управління пакетом після успішної установки mysql-serverпакета).

Обов’язково використовуйте лапки, якщо використовуєте їх у Dockerfile.

Тепер ви можете встановити, mysql-serverа запит на введення пароля не з’являється:

sudo apt-get install mysql-server

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

це встановить mysql без будь-якого втручання


7

Це може допомогти вам не підказати:

export DEBIAN_FRONTEND=noninteractive

Щодо сценарію, я б спробував ввести пароль у лапки:

mysql_pass="mymysqlpass"

1

Ця частина потребує перефразовування, якщо ви хочете поставити пароль між цитатами: 'mysql-server-5.1 mysql-server / root_password пароль' $ mysql_pass ''

До:

"mysql-server-5.1 mysql-server/root_password password '$mysql_pass'"

Це працювало для мене (порожній пароль root):

sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password password ''"
sudo debconf-set-selections <<< "mysql-server-5.5 mysql-server/root_password_again password ''"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password ''"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password ''"
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get install -y -q mysql-server libmysqlclient-dev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.