उबंटू पर MySQL की स्क्रिप्टेड इंस्टॉल


23

मुझे एक स्क्रिप्ट लिखने की ज़रूरत है जो मेरे सर्वर को एक ताज़ा उबंटू सर्वर इंस्टॉल से बनाएगी। अपाचे और PHP जैसी चीजों के बीच इसे MySQL को इंस्टॉल करना होगा। यहां एकमात्र समस्या यह है कि जब मैं MySQL को apt-get के साथ स्थापित करता हूं, तो कुछ बिंदु पर इंस्टॉलेशन एक संवाद लाएगा जो मुझे अपना रूट पासवर्ड टाइप करने की अनुमति देता है। यानी, मानव की सहभागिता आवश्यक है।

मैं स्थापना के दौरान इस स्क्रीन को कैसे बायपास कर सकता हूं और अभी भी MySQL को स्थापित करने के लिए apt-get का उपयोग करते हुए मानव संपर्क से बच सकता हूं?


जवाबों:


31

आपको debconf डेटाबेस को प्रिज़ करने की आवश्यकता है। इसे आज़माने से पहले debconf को पहले इंस्टॉल करना होगा।

Mysql और ubuntu का संस्करण लाइन बदल सकता है:

echo mysql-server mysql-server/root_password select PASSWORD | debconf-set-selections
echo mysql-server mysql-server/root_password_again select PASSWORD | debconf-set-selections

उदाहरण के लिए आपको इसके बजाय इसकी आवश्यकता थी:

echo mysql-server-5.0 mysql-server/root_password password PASSWORD | debconf-set-selections
echo mysql-server-5.0 mysql-server/root_password_again password PASSWORD | debconf-set-selections

हां, यह काम करता है, लेकिन स्थापित होने के बाद मैं mysql (mysql -u root) में प्रवेश नहीं कर सकता, यह अनुमति से इनकार करता है)।
समनंग

3
कैसे के बारे मेंmysql -u root -p
PhilT

पासवर्ड प्रॉम्प्ट को अक्षम करने के लिए नीचे दिए गए शो के रूप में भी 'देखे' ध्वज की आवश्यकता है या आपको पासवर्ड के लिए फिर से संकेत दिया जाएगा।
जेमिसन बेकर

5

जबकि FAI और इसी तरह की प्रणाली एक उद्यम वातावरण में सहायक होती हैं, (और उन्हें उनके बारे में पता होना चाहिए), वे दुर्भाग्य से रामबाण नहीं हैं।

उदाहरण के लिए, क्या होगा यदि वह दूरस्थ मशीनों पर काम कर रहा है, शायद होस्ट किए गए, किराए पर सर्वर, बिना किसी विश्वसनीय या समर्पित नेटवर्क, या ईसी 2 जैसे क्लाउड वातावरण के बिना सर्वर को किराए पर? पीएक्सई नेटबूट का कोई प्रकार वहां काम नहीं करेगा। कठपुतली और बावर्ची अधिक सामान्य प्रयोजन के उपकरण प्रतीत होते हैं जो उसकी मदद कर सकते हैं, हालाँकि।

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get install somepackage

Name: ...
Template: ...
Value: ...
Owners: ...
Variables:
   ....
   ....
EOF

आप पहले से सेट किए गए सिस्टम पर debconf DB से सही मान प्राप्त कर सकते हैं। यह तकनीक आपको एकल शेल स्क्रिप्ट में पूरी चीज़ को चिपका देती है। उदाहरण के लिए, /var/cache/debconf/passwords.dat (ध्यान दें कि डेबियन और 5.1 और उबंटू दोनों पर 5.0 के साथ काम करने की क्षमता, अतिरिक्त प्रविष्टियां कुछ भी चोट नहीं पहुंचाती हैं):

cat << EOF | DEBIAN_FRONTEND=noninteractive DEBCONF_DB_FALLBACK=Pipe /usr/bin/apt-get -qq -y install mysql-server
Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.1
Flags: seen

Name: mysql-server/root_password
Template: mysql-server/root_password
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

Name: mysql-server/root_password_again
Template: mysql-server/root_password_again
Value: YOURPASSWORD
Owners: mysql-server-5.0
Flags: seen

EOF

एक और तरीका, शायद आसान: (डिबैंक-यूटील पैकेज से डिबेंक-गेट-सेलेक्शन या डेबोनफ-शो के उत्तर इकट्ठा करें):

echo "Installing MySQL 5.0.."
sudo apt-get install -qqy debconf-utils
cat << EOF | debconf-set-selections
mysql-server-5.0 mysql-server/root_password password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password_again password YOURPASSWORD
mysql-server-5.0 mysql-server/root_password seen true
mysql-server-5.0 mysql-server/root_password_again seen true
EOF
/usr/bin/apt-get -y install mysql-server-5.0 mysql-server

जब आप debconf-set-selections चलाते हैं, तो अपने उत्तरों की जाँच करें: cat /var/cache/debconf/passwords.dat

और, परीक्षण करते समय, सभी डेटाबेस को निकालना और शुद्ध करना सुनिश्चित करें (विशेष रूप से mysql डेटाबेस, जहां यह संग्रहीत है) और अपने दूषित DB को ठीक करें यदि वे दूषित हो गए:

apt-get --purge remove mysql-server*; /usr/share/debconf/fix_db.pl 

इसके साथ कुछ सुझाव: 1) आपके पास देखा हुआ झंडा और _again पासवर्ड होना चाहिए। 2) आप पासवर्ड के आसपास उद्धरण नहीं डालेंगे। यह बिना अटके एक MySQL क्वेरी में चला जाएगा, इसलिए यदि आवश्यक हो तो आपको इसे स्वयं उद्धृत करना होगा। इसका मतलब यह भी है कि कोई स्थान नहीं है (मुझे लगता है) 3) यदि आपको परेशानी है, तो हाथ से preseeding करें और फिर सीधे MySQL स्थापित करें (एक सामान्य टर्मिनल / tty में) और देखें कि क्या debconf आपको बताता है। यह आपको चेतावनी और त्रुटियों को बताएगा।


3

यदि आपके पास कई सर्वर हैं जिन्हें आपको पुनर्निर्माण करने की आवश्यकता है, तो मैं आपको शेल स्क्रिप्ट लिखने के बजाय कठपुतली की तरह कुछ देखने की सलाह देता हूं । कठपुतली में एक वर्णनात्मक भाषा होती है, इसलिए आप यह परिभाषित करते हैं कि आप कैसे सिस्टम को देखना चाहते हैं, न कि इसे कैसे प्राप्त करें। पैकेज प्रकार में एक प्रतिक्रियाशील विकल्प होता है जो आपको स्टीवन के उत्तर में डिबेंकफ उत्तर को परिभाषित करने की अनुमति देता है।


1

क्या मैं यह भी सुझाव दूंगा कि आप कच्चे लोहे से सर्वर स्टेजिंग प्रक्रिया को स्वचालित करें?

एफएआई आजकल नेटवर्क से उबंटू सहित अधिकांश प्रमुख डेबियन-आधारित सिस्टम स्थापित करने के लिए प्रोफाइल है। यह पाठ्यक्रम कठपुतली के उत्तर का एक विस्तार है, जो कि डिबेंक जवाब का विस्तार है।

FAI से मंचन का संयोजन, फिर कठपुतली के साथ सर्वर भूमिकाओं में अनुकूलित करना (जहाँ कठपुतली आपके सिस्टम के लिए उचित साधनों का उपयोग करेगी, जैसे डेबियन (-लिएक के लिए डिबेंक) स्वचालित रूप से), बल्कि इन दिनों लोकप्रिय है और यह बहुत ज्यादा नहीं होना चाहिए उन उदाहरणों को खोजने के लिए कठिन है जो आप के बजाय निकटता से करना चाहते हैं।

स्टेजिंग / कॉन्फ़िगरेशन सर्वर होने का एक प्रमुख अतिरिक्त लाभ यह है कि यह आपके कॉन्फ़िगरेशन संस्करण को नियंत्रित रखने के लिए एक तार्किक स्थान भी है, उदाहरण के लिए git (जिसमें चेकसम द्वारा रिपॉजिटरी स्टेट्स के नामकरण का लाभ है, ताकि आप भ्रष्टाचार के खिलाफ सुरक्षित रहें जब तक आप सही चेकसम को नोट करते हैं), वास्तव में स्वच्छ और प्रतिलिपि प्रस्तुत करने योग्य प्रक्रिया के लिए।


1

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