MySQL'i şifre istemi olmadan Ubuntu'ya yükleyin


305

Ubuntu'ya MySQL sunucusunu kurmak için nasıl komut dosyası yazarım?

sudo apt-get install mysql yüklenecek, ancak konsolda bir parola girilmesini isteyecektir.

Bunu etkileşimli olmayan bir şekilde nasıl yapabilirim? Yani, şifreyi sağlayabilecek bir komut dosyası yaz?

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

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

Yanıtlar:


431
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

Gibi belirli sürümler mysql-server-5.6için sürümü şu şekilde belirtmeniz gerekir:

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 için anahtarlar biraz farklıdır:

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

Parolanızı istediğiniz kök parolayla değiştirin. (anlaşılan parolanız boş bir root şifresi için boş bırakılabilir.)

Kabuğunuz burada dizeleri desteklemiyorsa ( zsh , ksh93 ve bash bunları destekliyorsa) kullanın:

echo ... | sudo debconf-set-selections 

1
mysql-server-5.1Parçayı geçerli mysql sürümüyle değiştirdiğinizden emin olun !
Dean Rather

19
Değiştirerek aşağıdaki gibi cevap mariadb çevirir mysql-server-<version>ile maria-db-<server>. Aşağıdaki mysql-server/ dokunulmamış
olayların görülmesi

5
- <version> kısmı gereksiz - benim için bir cazibe gibi çalışıyor ve onsuz daha genel.
2013

2
Bu, sonrası ile iyi çalışıyorsudo apt-get install debconf-utils
Nazin

4
@ MariaDB için lukx, paket mariadb-sunucusu, maria-db-sunucusu değil. Yine de not için teşekkürler.
ywarnier

238

Bu hile yapmalı

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

Tabii ki, size boş bir root şifresi bırakıyor - böylece bir şey çalıştırmak isteyeceksiniz

mysqladmin -u root password mysecretpasswordgoeshere

Daha sonra hesaba bir şifre eklemek için.


3
MySQL 5.5 ile yeni Ubuntu 12.04 örneğinde test edildi ve çalışıyor
Alberto Megía

21
Sudo ile kuruyorsanız, ortam değişkeninin aktarılması için -E kullanın. Örneğin. sudo -E apt-get -q -y mysql sunucusunu kurun.
Patrick Cullen

35
Env değişkenini ekleyerek doğrudan komuta da ekleyebilirsiniz (dış ortamı kirletmeden) -DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server
yoniLavi

2
Bu şekilde yapıldığında mysql şifresi bir bash günlüğüne kaydedilir.
DutGRIFF

3
Debian 8.2'de benim için çalıştım - @PatrickCullen ve @yoniLavi'den birleştim - DEBIAN_FRONTEND=noninteractive sudo -E apt-get -q -y install mysql-serverbir cazibe gibi çalıştım!
MuffinTheMan

31

Çalışmasını sağlamanın başka bir yolu:

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

Bunun parolayı "root" olarak ayarladığını unutmayın. Basit teklifler kullanarak boş bir şifre ayarlayamadım'' , ama bu çözüm benim için yeterliydi.

Burada bir çözüme dayanarak .


1
echo 'mysql-sunucu-5.5 mysql-sunucu / root_password parolası' | sudo debconf-set-selection benim için boş bir parola belirlemek için çalışır.
Tsuneo Yoshioka

4
@TsuneoYoshioka Benim için çalışmıyor. Sonuna iki boşluk koyarsam şifremi tek bir boşluğa ayarlar. Bir boşlukla hala istemi vermeye çalışır ve ardından kurulumu vidalar.
mpen

3

kullanın:

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

Teşekkürler! sudo dışında değişken tanımlamak her zaman beni alır.
Gaston Sanchez
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.