शेल स्क्रिप्ट से MySQL कमांड कैसे निष्पादित करें?


131

मैं एक शेल स्क्रिप्ट के माध्यम से SQL कमांड को कैसे निष्पादित कर सकता हूं ताकि मैं इसे स्वचालित बना सकूं?

मैं एक शेल स्क्रिप्ट का उपयोग करके SQL फ़ाइल में एकत्र किए गए डेटा को पुनर्स्थापित करना चाहता हूं। मैं एक सर्वर से कनेक्ट करना और डेटा को पुनर्स्थापित करना चाहता हूं। SSH कमांड लाइन के माध्यम से अलग से निष्पादित होने पर कमांड काम करता है।

यह वह कमांड है जिसका मैं उपयोग करता हूं:

mysql -h "server-name" -u root "password" "database-name" < "filename.sql"

यह शेल स्क्रिप्ट कोड है जो फ़ाइल बनाता है ds_fbids.sqlऔर इसे mysql में पाइप करता है।

perl fb_apps_frm_fb.pl
perl fb_new_spider.pl ds_fbids.txt ds_fbids.sql
mysql -h dbservername -u username -ppassword dbname < ds_fbids.sql

ऐसा करने का सही तरीका क्या है?

जवाबों:


176

-pपासवर्ड भेजने के लिए आपको ध्वज का उपयोग करने की आवश्यकता है । और यह मुश्किल है क्योंकि आपके पास -pऔर पासवर्ड के बीच कोई स्थान नहीं होना चाहिए ।

$ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"

यदि आप -pmysql क्लाइंट को पासवर्ड के लिए अंतःक्रियात्मक रूप से संकेत करने के बाद किसी स्थान का उपयोग करते हैं, और फिर यह अगले कमांड तर्क को डेटाबेस-नाम के रूप में व्याख्या करता है:

$ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
Enter password: <you type it in here>
ERROR 1049 (42000): Unknown database 'XXXXXXXX'

वास्तव में, मैं उपयोगकर्ता और पासवर्ड को ~ / .my.cnf में संग्रहीत करना पसंद करता हूं, इसलिए मुझे इसे कमांड-लाइन पर नहीं रखना है:

[client]
user = root
password = XXXXXXXX

फिर:

$ mysql -h "server-name" "database-name" < "filename.sql"

अपनी टिप्पणी फिर से दें:

मैं कमांड लाइन पर और शेल लिपियों में हर समय बैच-मोड mysql कमांड चलाता हूं। आपकी शेल स्क्रिप्ट में क्या गलत है, इसका निदान करना कठिन है, क्योंकि आपने सटीक स्क्रिप्ट या कोई त्रुटि आउटपुट साझा नहीं किया है। मेरा सुझाव है कि आप अपने मूल प्रश्न को ऊपर संपादित करें और जो गलत हो, उसके उदाहरण प्रदान करें।

जब मैं एक शेल स्क्रिप्ट का निवारण -xकर रहा होता हूं तो मैं ध्वज का उपयोग करता हूं ताकि मैं देख सकूं कि यह प्रत्येक कमांड को कैसे निष्पादित कर रहा है:

$ bash -x myscript.sh

त्वरित प्रतिक्रिया के लिए धन्यवाद। मैं कमांड लाइन में ही पासवर्ड डालकर थक गया। असली समस्या यह है कि मैं इस कमांड को .sh फ़ाइल में डाल रहा हूं और फिर इस शेल स्क्रिप्ट को निष्पादित कर रहा हूं। फ़ाइल में कमांड कमांड लाइन पर निष्पादित नहीं की जाती है, लेकिन जब मैं कमांड लाइन पर केवल कमांड निष्पादित करता हूं तो वही कमांड पूरी तरह से ठीक काम करता है।
MUFC

+ mysql -h dbservername -u user-name -ppassword dbname</br> : No such file or directoryids.sql</br> + $'\r' : command not found2:यह मुझे मिला त्रुटि संदेश है
MUFC

ठीक है, तो मुझे लगता है कि आपकी वर्तमान कार्यशील निर्देशिका वह जगह नहीं है जहाँ idssql फ़ाइल स्थित है। इसके अलावा, आप अपनी स्क्रिप्ट में एम्बेडेड नई सुर्खियों में हो सकते हैं।
बिल करविन

मेरे पास हर कमांड के बाद मेरे शेल स्क्रिप्ट में नई लाइनें हैं। मेरे सभी शेल स्क्रिप्ट में 3 कमांड लाइन कमांड होते हैं, जिन्हें मैं अलग से नहीं चलाना चाहता, इसलिए मैंने अपने हस्तक्षेप के बिना उन्हें चलाने के लिए एक शेल स्क्रिप्ट बनाई और मैंने हर कमेंड में न्यूलाइन एफेट्र डाल दिया। क्या यह समस्या पैदा कर रहा है?
MUFC

-pपासवर्ड से बचने के लिए सबसे अच्छा है यदि पासवर्ड शून्य या खाली स्ट्रिंग है, तो शायद आप अपनी पोस्ट को अपडेट कर सकते हैं? :)
जेम्स ओर्वेक

118

इस सिंटैक्स का उपयोग करें:

mysql -u $user -p$passsword -Bse "command1;command2;....;commandn"

8
मुझे Google से इस पृष्ठ पर उतारा गया और यह वह समाधान है जिसकी मुझे उम्मीद थी (प्रश्न के शीर्षक के साथ मेल खाते हुए)।
जनक आर राजपक्ष

15
मैनुअल से विकल्पों के बारे में कुछ और विवरण: -बी बैच के लिए है, कॉलम विभाजक के रूप में टैब का उपयोग करके परिणाम प्रिंट करें, प्रत्येक पंक्ति के साथ एक नई पंक्ति। इस विकल्प के साथ, mysql इतिहास फ़ाइल का उपयोग नहीं करता है। बैच मोड का परिणाम nontabular आउटपुट स्वरूप और विशेष वर्णों के भागने में होता है। -s साइलेंट मोड है। उत्पादन कम करें। -e बयान निष्पादित और छोड़ने की है
wranvaud

आपकी सहायताके लिए धन्यवाद! :)
हाटंग

क्या यह एक वंशानुगत के साथ चल सकता है?
zx1986

1
@ zx1986 हाँ और नहीं, HEREDOC को। इस बात पर निर्भर करता है कि आप इसका उपयोग कैसे करते हैं। "command1;command2;....;commandn"इस उत्तर के भाग को बदलने के लिए इसका उपयोग करने से काम नहीं चलेगा। इसका उपयोग ओपी के सिंटैक्स में पुनर्निर्देशित फ़ाइल के उपयोग को बदलने के लिए काम कर सकता है । मैंने इस प्रश्न के उत्तर में उस मुद्दे को संबोधित किया है ।
चिंद्रबा

45

पिछले सभी उत्तर महान हैं। यदि यह एक सरल, एक पंक्ति sql कमांड है जिसे आप चलाना चाहते हैं, तो आप -e विकल्प का भी उपयोग कर सकते हैं।

mysql -h <host> -u<user> -p<password> database -e \
  "SELECT * FROM blah WHERE foo='bar';"

दोहरे ("") उद्धरणों में क्वेरी वह थी जो मुझे करने की आवश्यकता थी। धन्यवाद
user3132107

मैं देखता हूं, और मुझे लगता है कि आपको क्वेरी के अंत में अर्धविराम को शामिल करना होगा?
लोरी

19

SQL स्क्रिप्ट को कैसे निष्पादित करें, इस सिंटैक्स का उपयोग करें:

mysql --host= localhost --user=root --password=xxxxxx  -e "source dbscript.sql"

यदि आप होस्टहोस्ट का उपयोग लोकलहोस्ट के रूप में करते हैं तो आपको इसका उल्लेख करने की आवश्यकता नहीं है। आप इसका उपयोग कर सकते हैं:

mysql --user=root --password=xxxxxx  -e "source dbscript.sql"

यह विंडोज और लिनक्स के लिए काम करना चाहिए।

यदि पासवर्ड सामग्री में एक !(विस्मयादिबोधक चिह्न) है, तो आपको उसके \सामने एक (बैकस्लैश) जोड़ना चाहिए ।


1
डेटाबेस कैसे निर्दिष्ट करें? यह अंदर होना चाहिए, जैसे, -e "एबीसी का उपयोग करें; स्रोत dbscript.sql"?
अब्दुल मुनीर

9

प्रश्न के मूल का उत्तर कई बार पहले ही दिया जा चुका है, मैंने अभी सोचा था कि मैं उस backticks (`s) को शेल स्क्रिप्टिंग और एसक्यूएल दोनों में जोड़ना चाहूंगा। यदि आपको किसी तालिका या डेटाबेस के नाम को निर्दिष्ट करने के लिए SQL में उनका उपयोग करने की आवश्यकता है, तो आपको उन्हें शेल स्क्रिप्ट में इस तरह से बचना होगा:

mysql -p=password -u "root" -Bse "CREATE DATABASE \`${1}_database\`;
CREATE USER '$1'@'%' IDENTIFIED BY '$2';
GRANT ALL PRIVILEGES ON `${1}_database`.* TO '$1'@'%' WITH GRANT OPTION;"

बेशक, जब तक आप उपयोगकर्ता इनपुट पर भरोसा नहीं करते, तब तक संक्षिप्त उपयोगकर्ता इनपुट (तर्क पारित) के माध्यम से SQL उत्पन्न नहीं किया जाना चाहिए। यह पैरामीटर के समर्थन के लिए किसी अन्य स्क्रिप्टिंग भाषा में डालने के लिए बहुत अधिक सुरक्षित होगा / प्रविष्टि के लिए सही ढंग से स्ट्रिंग से बचना MySQL में।


5
mysql -h "hostname" -u usr_name -pPASSWD "db_name" < sql_script_file

( sql_script_fileयदि आवश्यक हो तो पूर्ण पथ का उपयोग करें )

यदि आप किसी पुट को किसी फ़ाइल में पुनर्निर्देशित करना चाहते हैं

mysql -h "hostname" -u usr_name -pPASSWD "db_name" < sql_script_file > out_file

@Gus, बहुमूल्य टिप्पणियों के लिए सबसे पहले धन्यवाद। यह मेरे लिए एक आकर्षण की तरह काम करता था। मैं चाहता हूँ कि आउटपुट एक एक्सेल या .csv फ़ाइल हो। मैं उसे कैसे प्राप्त कर सकता हूं। अग्रिम में धन्यवाद।
आशी_ंद_पेरल

@Ash_and_Perl मैंने केवल इस उत्तर को संपादित किया है, बेल मुझे धन्यवाद नहीं, यह उसका उत्तर है। यदि आपके पास अपना स्वयं का प्रश्न है, और आपने पहले से ही इसका समाधान खोजने की कोशिश की है , तो मेरा सुझाव है कि आप एक प्रश्न बनाएं। इस तरह से आप जो भी कोशिश कर सकते हैं उसे विस्तार दे सकते हैं, यह कैसे विफल हुआ, और लोग आपको एक पूर्ण, पूर्ण उत्तर दे सकते हैं (और इसके लिए अंक प्राप्त कर सकते हैं!)।
गस

5

आप भूल गए -pया --password=(बाद में बेहतर पठनीय है):

mysql -h "$server_name" "--user=$user" "--password=$password" "--database=$database_name" < "filename.sql"

(यदि आप सुनिश्चित हैं कि आपके क्रेडेंशियल्स / नामों में स्थान या शेल-विशेष वर्ण नहीं हैं, तो उद्धरण अनावश्यक हैं।)

ध्यान दें कि मेनपेज, यह भी कहता है कि कमांड लाइन पर क्रेडेंशियल्स प्रदान करना असुरक्षित है। तो my.cnf के बारे में बिल की सलाह का पालन करें।


4

जैसा कि पहले कहा गया है कि आप -p का उपयोग सर्वर से पासवर्ड पास करने के लिए कर सकते हैं।

लेकिन मैं यह सलाह देता हूं:

mysql -h "hostaddress" -u "username" -p "database-name" < "sqlfile.sql"

ध्यान दें पासवर्ड नहीं है। यह तब आपके पासवर्ड के लिए संकेत देगा। मैं इसे टाइप करूंगा। ताकि आपका पासवर्ड सर्वर कमांड लाइन हिस्ट्री में लॉग इन न हो।

यह एक बुनियादी सुरक्षा उपाय है।

यदि सुरक्षा चिंता का विषय नहीं है, तो मैं डेटाबेस उपयोगकर्ता से केवल अस्थायी रूप से पासवर्ड हटा दूंगा। फिर आयात के बाद - इसे फिर से जोड़ें।

इस तरह आपके पास कोई भी अन्य खाता हो सकता है जो समान पासवर्ड साझा करता है वह समझौता नहीं करेगा।

यह भी प्रतीत होता है कि आपकी शेल स्क्रिप्ट में आप यह देखने के लिए प्रतीक्षा / जाँच नहीं कर रहे हैं कि क्या आप जिस फ़ाइल को आयात करने का प्रयास कर रहे हैं वह वास्तव में मौजूद है। पर्ल स्क्रिप्ट अभी समाप्त नहीं हुई है।


1
आपने प्रश्न के "स्वचालित" भाग को याद किया, और पासवर्ड को अस्थायी रूप से हटाना वास्तव में खराब विचार है।
पॉइंटेडर्स

मैंने इसे "रिस्टोर" और "स्वचालित" के रूप में पढ़ा जिसका अर्थ है "स्वचालित लेकिन हमेशा के लिए"। लेकिन जैसा मैंने कहा "अगर सुरक्षा चिंता का विषय नहीं है"। मैं सहमत हूँ - यह वास्तव में एक बुरा विचार है।
स्टर्लिंग हैमिल्टन

मुझे खेद है अगर मैंने भ्रम पैदा किया है। आटोमेटेड से मेरा क्या अभिप्राय है, मेरे पास दो पर्ल स्क्रिप्ट हैं जो .sql फ़ाइल को जनरेट करने के लिए उपयोग की जाती हैं, लेकिन उस फाइल को DB में डंप करने की कमांड शेल स्क्रिप्ट द्वारा नहीं चलाई जाती है, लेकिन यह पूरी तरह से काम करती है अगर मैं उस कमांड को चलाऊं एक कमांड लाइन पर। मैं कमांड लाइन पर उस कमांड को चलाने के प्रयास को कम करना चाहता हूं और इसे शेल स्क्रिप्ट के माध्यम से ही चलाता हूं।
MUFC

1
वैबव: यदि आप वास्तविक शेल स्क्रिप्ट को अपने प्रश्न के अंदर रख सकते हैं, तो मैं आगे मदद करने में सक्षम हो सकता हूं।
स्टर्लिंग हैमिल्टन

perl fb_apps_frm_fb.plNewbr> perl fb_new_spider.pl ds_fbids.txt ds_fbids.sql` Newbr>mysql -h dbservername -u username -ppassword dbname < ds_fbids.sql
MUFC


3

उत्पन्न की गई .sqlफ़ाइल को आयात करने की प्रक्रिया को "स्वचालित" करने के लिए , उन सभी जालों से बचते हुए, जिनके माध्यम से फ़ाइलों को पास करने की कोशिश में छिपाया जा सकता है stdinऔर stdout, MySQL को MySQL .sqlमें SOURCEकमांड का उपयोग करके उत्पन्न फ़ाइल को निष्पादित करने के लिए कहें ।

क्षितिज सूद से संक्षिप्त, लेकिन उत्कृष्ट, उत्तर में वाक्य रचना , सबसे अच्छा प्रारंभिक बिंदु देता है। संक्षेप में, क्षितिज सूद के सिंटैक्स के अनुसार ओपी की कमांड को संशोधित करें और कमांड को उस कमांड के साथ बदलें :SOURCE

#!/bin/bash
mysql -u$user -p$password $dbname -Bse "SOURCE ds_fbids.sql
SOURCE ds_fbidx.sql"

यदि डेटाबेस का नाम जनरेट में शामिल है .sql फ़ाइल , तो इसे कमांड से छोड़ा जा सकता है।

यहाँ अनुमान यह है कि उत्पन्न फ़ाइल अपने आप में एक फ़ाइल के रूप में मान्य है.sql । शेल द्वारा फ़ाइल को पुनर्निर्देशित, पाइप्ड या किसी अन्य तरीके से नियंत्रित नहीं करने से, शेल के कारण उत्पन्न आउटपुट में किसी भी वर्ण से बचने की आवश्यकता के साथ कोई समस्या नहीं है। एक .sqlफ़ाइल में बच निकलने की जरूरत के संबंध में नियम , निश्चित रूप से, अभी भी लागू होते हैं।

कमांड लाइन पर, या एक my.cnfफ़ाइल आदि में पासवर्ड के आसपास सुरक्षा मुद्दों से निपटने के लिए , कुछ उत्कृष्ट सुझावों के साथ, अन्य उत्तरों में अच्छी तरह से संबोधित किया गया है। डैनी से मेरा पसंदीदा जवाब , यह कवर करता है, जिसमें नौकरी से निपटने के दौरान समस्या को कैसे संभालना है , या कुछ और भी शामिल है।cron


मेरे द्वारा बताए गए संक्षिप्त उत्तर पर एक टिप्पणी (प्रश्न?) को संबोधित करने के लिए : नहीं, इसका उपयोग HEREDOC सिंटैक्स के साथ नहीं किया जा सकता है, क्योंकि यह शेल कमांड दिया गया है। HEREDOC का उपयोग पुनर्निर्देशन संस्करण सिंटैक्स में किया जा सकता है , ( -Bseविकल्प के बिना ), क्योंकि I / O पुनर्निर्देशन वह है जो HEREDOC के आसपास बनाया गया है। यदि आपको HEREDOC की कार्यक्षमता की आवश्यकता है, तो .sqlफ़ाइल के निर्माण में इसका उपयोग करना बेहतर होगा , भले ही यह एक अस्थायी हो, और MySQL बैच लाइन के साथ निष्पादित करने के लिए "कमांड" के रूप में उस फ़ाइल का उपयोग करें।

#!/bin/bash
cat >temp.sql <<SQL_STATEMENTS
...
SELECT \`column_name\` FROM \`table_name\` WHERE \`column_name\`='$shell_variable';
...
SQL_STATEMENTS
mysql -u $user -p$password $db_name -Be "SOURCE temp.sql"
rm -f temp.sql

ध्यान रखें कि शेल विस्तार के कारण आप HEREDOC के भीतर शेल और पर्यावरण चर का उपयोग कर सकते हैं। डाउन-साइड यह है कि आपको प्रत्येक बैकटिक से बचना चाहिए । MySQL उन्हें पहचानकर्ताओं के लिए सीमांकक के रूप में उपयोग करता है लेकिन शेल, जो पहले स्ट्रिंग प्राप्त करता है, उन्हें निष्पादन योग्य कमांड सीमांकक के रूप में उपयोग करता है। माईएसक्यूएल कमांड्स के सिंगल बैकटिक पर भागने से चूक जाते हैं, और पूरी चीज त्रुटियों के साथ फट जाती है। पूरे मुद्दे को HEREDOC के लिए उद्धृत सीमा रेखा का उपयोग करके हल किया जा सकता है:

#!/bin/bash
cat >temp.sql <<'SQL_STATEMENTS'
...
SELECT `column_name` FROM `table_name` WHERE `column_name`='constant_value';
...
SQL_STATEMENTS
mysql -u $user -p$password $db_name -Be "SOURCE temp.sql"
rm -f temp.sql

शेल विस्तार को हटाने से बैकटिक्स और अन्य शेल-विशेष पात्रों से बचने की आवश्यकता समाप्त हो जाती है। यह इसके भीतर शेल और पर्यावरण चर का उपयोग करने की क्षमता को भी हटा देता है। यह बहुत ज्यादा खोल स्क्रिप्ट के अंदर एक HEREDOC का उपयोग करने के लाभों को हटा देता है।

अन्य विकल्प बैच वाक्यविन्यास संस्करण ( -Bse) के साथ बैश में अनुमत बहु-पंक्ति उद्धृत स्ट्रिंग्स का उपयोग करना है । मैं अन्य गोले नहीं जानता, इसलिए मैं यह नहीं कह सकता कि क्या वे इसमें काम करते हैं। आपको किसी भी तरह .sqlसे SOURCEकमांड के साथ एक से अधिक फ़ाइल को निष्पादित करने के लिए इसका उपयोग करने की आवश्यकता होगी , क्योंकि यह किसी अन्य MySQL कमांड द्वारा समाप्त नहीं किया ;जाता है, और प्रति लाइन केवल एक की अनुमति है। मल्टी-लाइन स्ट्रिंग शेल विस्तार पर सामान्य प्रभावों के साथ या तो सिंगल या डबल उद्धृत किया जा सकता है। बैकटिक्स इत्यादि के लिए HEREDOC सिंटैक्स का उपयोग करने के समान ही यह भी है।

एक संभावित रूप से बेहतर समाधान एक स्क्रिप्टिंग भाषा का उपयोग करना होगा, पर्ल, पायथन, आदि, .sqlफ़ाइल बनाने के लिए , जैसा कि ओपी ने किया था, और SOURCEशीर्ष पर सरल कमांड सिंटैक्स का उपयोग करके वह फ़ाइल। शेल की तुलना में स्ट्रिंग भाषाओं में स्क्रिप्टिंग भाषाएं बहुत बेहतर हैं, और MySQL के साथ काम करते समय उद्धृत और बच निकलने के लिए अधिकांश में अंतर्निहित प्रक्रियाएं हैं।


2

क्रोन में प्रयुक्त शेल स्क्रिप्ट से mysql तक पहुंचने के लिए एक महत्वपूर्ण विचार यह है कि mysql लोड करने के लिए .my.cnf निर्धारित करने के लिए उपयोगकर्ता में लॉग इन करता है।

यह क्रोन के साथ काम नहीं करता है। यदि आप su / sudo का उपयोग कर रहे हैं तो यह भ्रमित हो सकता है क्योंकि लॉग इन उपयोगकर्ता आपके द्वारा चलाए जा रहे उपयोगकर्ता नहीं हो सकता है।

मैं कुछ का उपयोग करता हूं जैसे:

mysql --defaults-extra-file=/path/to/specific/.my.cnf -e 'SELECT something FROM sometable'

बस सुनिश्चित करें कि उपयोगकर्ता और समूह स्वामित्व और अनुमतियाँ उचित रूप से और .my.cnf फ़ाइल पर कसकर सेट हैं।


1
#!/bin/sh
#Procedures = update
#Scheduled at : Every 00.05 

v_path=/etc/database_jobs
v_cnt=0

MAILTO="indd@abc.in joanson@abc.in sturt@abc.in"
touch "$v_path/db_db_log.log"

#test
mysql -uusername -ppassword -h111.111.111.111 db_name -e "CALL functionName()" > $v_path/db_db_log.log 2>&1
if [ "$?" -eq 0 ]
  then
   v_cnt=`expr $v_cnt + 1`
  mail -s "db Attendance Update has been run successfully" $MAILTO < $v_path/db_db_log.log
 else
   mail -s "Alert : db Attendance Update has been failed" $MAILTO < $v_path/db_db_log.log
   exit
fi

0
mysql_config_editor set --login-path=storedPasswordKey --host=localhost --user=root --password

मैं एक सुरक्षित पासवर्ड के साथ कमांड लाइन कैसे निष्पादित करूं? विन्यास संपादक का उपयोग करें !!!

Mysql 5.6.6 के रूप में आप एक कॉन्फिगर फाइल में पासवर्ड स्टोर कर सकते हैं और फिर इस तरह से क्ली कमांड को निष्पादित कर सकते हैं ...।

mysql --login-path=storedPasswordKey ....

--login-path ने वेरिएबल्स ... होस्ट, यूजर और पासवर्ड को बदल दिया। बहुत बढ़िया!



0

मैंने एक शेल स्क्रिप्ट लिखी है जो प्रॉपर्टीज़ फ़ाइल के डेटा को पढ़ेगी और फिर शेल स्क्रिप्ट पर mysql स्क्रिप्ट को चलाएगी। इसे साझा करने से दूसरों को मदद मिल सकती है।

#!/bin/bash
    PROPERTY_FILE=filename.properties

    function getProperty {
       PROP_KEY=$1
       PROP_VALUE=`cat $PROPERTY_FILE | grep "$PROP_KEY" | cut -d'=' -f2`
       echo $PROP_VALUE
    }

    echo "# Reading property from $PROPERTY_FILE"
    DB_USER=$(getProperty "db.username")
    DB_PASS=$(getProperty "db.password")
    ROOT_LOC=$(getProperty "root.location")
    echo $DB_USER
    echo $DB_PASS
    echo $ROOT_LOC
    echo "Writing on DB ... "
    mysql -u$DB_USER -p$DB_PASS dbname<<EOFMYSQL

    update tablename set tablename.value_ = "$ROOT_LOC" where tablename.name_="Root directory location";
    EOFMYSQL
    echo "Writing root location($ROOT_LOC) is done ... "
    counter=`mysql -u${DB_USER} -p${DB_PASS} dbname -e "select count(*) from tablename where tablename.name_='Root directory location' and tablename.value_ = '$ROOT_LOC';" | grep -v "count"`;

    if [ "$counter" = "1" ]
    then
    echo "ROOT location updated"
    fi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.