एक पासवर्ड प्रॉम्प्ट के बिना Ubuntu पर MySQL स्थापित करें


305

मैं Ubuntu पर MySQL सर्वर को स्थापित करने के लिए एक स्क्रिप्ट कैसे लिखूं?

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

जवाबों:


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

विशिष्ट संस्करणों के लिए, जैसे कि 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- समुदाय-सर्वर के लिए, कुंजियाँ थोड़ी अलग हैं:

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

वांछित रूट पासवर्ड से अपने_पासवर्ड को बदलें। (ऐसा लगता है कि आपका_पासवर्ड खाली रूट पासवर्ड के लिए भी खाली छोड़ा जा सकता है।)

यदि आपका शेल यहां-स्ट्रिंग्स का समर्थन नहीं करता है ( zsh , ksh93 और bash उन्हें समर्थन करते हैं), उपयोग करें:

echo ... | sudo debconf-set-selections 

1
mysql-server-5.1वर्तमान mysql संस्करण का हिस्सा बदलना सुनिश्चित करें !
डीन राथर

19
यह उत्तर मारियाडीबी के साथ अनुवाद करके प्रतिस्थापित mysql-server-<version>करता है maria-db-<server>। निम्नलिखित घटना की mysql-server/ अछूता बनी हुई है
लक्स

5
- <संस्करण> भाग अनावश्यक है - मेरे लिए एक आकर्षण की तरह काम करता है, और इसके बिना अधिक सामान्य है।
msztolcman

2
इसके बाद ठीक काम करता हैsudo apt-get install debconf-utils
नाजिन

4
मारियाडीबी के लिए @Lukx, पैकेज मारियाब-सर्वर है, मारिया-डीबी-सर्वर नहीं। वैसे भी नोट के लिए धन्यवाद।
यार्नियर

238

यह काम कर जाना चाहिए

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

बेशक, यह आपको एक खाली रूट पासवर्ड के साथ छोड़ देता है - इसलिए आप कुछ ऐसा चलाना चाहेंगे

mysqladmin -u root password mysecretpasswordgoeshere

बाद में खाते में एक पासवर्ड जोड़ने के लिए।


3
परीक्षण किया और नए Ubuntu 12.04 उदाहरण में MySQL 5.5
अल्बर्टो मेगिया

21
यदि आप sudo के साथ इंस्टॉल कर रहे हैं, तो -E का उपयोग करें ताकि पर्यावरण चर साथ-साथ गुजरे। उदाहरण के लिए। sudo -E apt-get -q -y install mysql-server
पैट्रिक कलन

35
आप एनवी वैरिएबल को सीधे कमांड (बाहरी वातावरण को प्रदूषित किए बिना) में जोड़कर जोड़ सकते हैं -DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server
yoniLavi

2
इस तरह से किए जाने पर mysql पासवर्ड को bash लॉग में संग्रहीत किया जाएगा।
DutGRIFF

3
डेबियन 8.2 पर मेरे लिए काम किया - मैंने @PatrickCullen और @yoniLavi से DEBIAN_FRONTEND=noninteractive sudo -E apt-get -q -y install mysql-serverएक आकर्षण की तरह काम किया!
मफिनईमैन मैन

31

इसे काम करने का दूसरा तरीका:

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

ध्यान दें कि यह बस पासवर्ड को "रूट" पर सेट करता है। मैं इसे सरल उद्धरणों का उपयोग करके एक रिक्त पासवर्ड सेट करने के लिए नहीं प्राप्त कर सका '', लेकिन यह समाधान मेरे लिए पर्याप्त था।

यहां एक समाधान पर आधारित है


1
इको 'mysql-server-5.5 mysql-server / root_password पासवर्ड' | sudo debconf-set-select मेरे लिए खाली पासवर्ड निर्दिष्ट करने के लिए काम करता है।
सूनो योशीओका

4
@TsuneoYoshioka मेरे लिए काम नहीं करता है। अगर मैं अंत में दो स्थान रखता हूं तो यह एक ही स्थान पर मेरा पासवर्ड सेट करता है। एक स्थान के साथ यह अभी भी संकेत देने की कोशिश करता है और फिर स्थापना को खराब कर देता है।
एमपीएन

3

उपयोग:

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

धन्यवाद! सुडो के बाहर चर को परिभाषित करना हमेशा मुझे मिलता है।
गैस्टन सांचेज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.