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


26

मैं पासवर्ड प्रॉम्प्ट के बिना उबंटू नेट्टी पर MySQL स्थापित करने की कोशिश कर रहा हूं। हालाँकि, मुझे मुख्य इंस्टॉलेशन के बाद किसी चरण में पासवर्ड के लिए संकेत मिलता रहता है।

इसके अलावा, जब मैं प्रवेश करता हूं तो मेरा मानना ​​है कि मेरा पासवर्ड (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
जब आप आभासी मशीनों का प्रावधान कर रहे हैं, तो एक बात के लिए। यदि आप वास्तव में चिंतित हैं, तो मुझे यकीन है कि आप कुछ ऐसा कर सकते हैं जैसे कि एक यादृच्छिक क्रिप्टोग्राफिक रूप से सुरक्षित पासवर्ड बनाएं और स्क्रिप्ट को एक क्रॉन जॉब बनाएं जो आपको उस समय पासवर्ड बताए जब थोड़ा ट्रैफ़िक हो और उस सिस्टम को एयरगैप किया गया हो पहर। बस यह सुनिश्चित करें कि आप गायब होने से पहले 5 सेकंड के दौरान कंप्यूटर को देख रहे हैं।
ट्राइसिस

ओपी कहता है "मुझे पासवर्ड के लिए संकेत मिलता रहता है" लेकिन उसके उदाहरण कोड में हमारे पास 2 लाइनें हैं debconf-set-selectionsजिनके साथ शुरू होने से बच जाएगा, क्योंकि मुझे विश्वास है कि प्रश्न और नमूना कोड दो अलग-अलग समय में संपादित किए गए थे और अब सवाल कोई मतलब नहीं है।
मास्टाज़ी

जवाबों:


46

strangehatजब आप mysql-serverपैकेज को स्थापित करते हैं तो निम्न कमांड MySQL रूट पासवर्ड सेट करते हैं ।

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)।

डॉकरफाइल में इसका उपयोग करने पर उद्धरण का उपयोग करना सुनिश्चित करें।

अब आप इंस्टॉल कर सकते हैं 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'"

इसने मेरे लिए काम किया (खाली रूट पासवर्ड):

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.