कमांड लाइन से mysql रिमोट डेटाबेस तक पहुँचें


190

मेरे पास Rackspace वाला सर्वर है। मैं अपने स्थानीय मशीन कमांड लाइन से डेटाबेस का उपयोग करना चाहता हूं।

मैंने कोशिश की:

mysql -u username -h my.application.com -ppassword

लेकिन यह एक त्रुटि देता है:

त्रुटि 2003 (HY000):

'My.application.com' पर MySQL सर्वर से कनेक्ट नहीं किया जा सकता (10061)

इस त्रुटि का क्या कारण है और मैं दूरस्थ डेटाबेस से कैसे जुड़ सकता हूं?


5
10061= कनेक्शन ने इनकार कर दिया
डैनी बेकेट

जवाबों:


290

दूरस्थ mysql कंसोल पर सीधे लॉगिन करने के लिए, नीचे दिए गए कमांड का उपयोग करें:

mysql -u {username} -p'{password}' \
    -h {remote server ip or name} -P {port} \
    -D {DB name}

उदाहरण के लिए

mysql -u root -p'root' \
        -h 127.0.0.1 -P 3306 \
        -D local

प्रलेखन में निर्दिष्ट के बाद -p के रूप में कोई स्थान नहीं

यह सीधे उल्लेखित डेटाबेस पर स्विच करके आपको mysql कंसोल पर ले जाएगा।

31-07-2019 - संपादित सिंटैक्स


23
मुझे सिंगल कोट्स में पासवर्ड घेरना था। अर्थात्mysql -u USERNAME -p'PASSWORD' -h REMOTE_SERVER_IP DB_NAME
निक ब्रैडी

2
डेटाबेस का नाम निर्दिष्ट करने के लिए हमें -D को जोड़ना होगा। mysql -u {username} -p {password} -h {रिमोट सर्वर ip} -D {DB नाम}
randeepsp

1
क्या होगा अगर हमें विशिष्ट पोर्ट निर्दिष्ट करने की आवश्यकता है?
सर्ज

2
MacOS हाई सिएरा संस्करण 10.13.3 पर टर्मिनल में काम नहीं किया
realPK


33

my.cnf फ़ाइल संपादित करें:

vi /etc/my.cnf:

निश्चित करें कि:

bind-address=YOUR-SERVER-IP

और अगर आपके पास लाइन है:

skip-networking

यह टिप्पणी करना सुनिश्चित करें:

#skip-networking

पुनः आरंभ करना न भूलें:

/etc/init.d/mysqld restart


बाइंड-एड्रेस = Your-SERVER-IP। यहाँ जो IP का उल्लेख करने की आवश्यकता है, वह है रिमोट सर्वर IP?
user1986299

@ user1986299 नहीं, आपके सर्वर के IP की आवश्यकता है (रिमोट की नहीं)
alfasin

1
आपको अपने आप को पहुँच प्रदान करनी चाहिए ... mysql टाइप करके स्थानीय सर्वर से अपना DB लॉगिन करें और फिर:grant all privileges on *.* to 'root'@'%' identified by 'your-password'
alfasin

5
कभी नहीं '' जड़ ''% '' यह एक बहुत बड़ी सुरक्षा नहीं है!
josh123a123 14

1
@alfasin यह एक छोटे से ट्विस्ट के साथ एक गहरा प्रभाव है, धन्यवाद!
क्रिस्टोफर स्कोनफेल्ट

30

बस इसे ubuntu पर टर्मिनल पर रखें:

mysql -u username -h host -p

अब हिट दर्ज करें

टर्मिनल आपसे पासवर्ड पूछेगा, पासवर्ड दर्ज करेगा और आप डेटाबेस सर्वर में होंगे


14

इस कमांड को आज़माएं mysql -uuser -hhostname -PPORT -ppassword

मुझे एक समान स्थिति का सामना करना पड़ा और बाद में जब होस्ट के लिए mysql पोर्ट कमांड के साथ दर्ज किया गया, तो इसे हल कर दिया गया।


5
mysql -u testuser -h 192.168.**.* -P 3306 -p passwordमेरे लिए काम किया
महबूब ए सय्यद

14

मैक के लिए, निम्न कमांड का उपयोग करें:

mysql -u app -h hostaddress -P port -D dbname -p

और फिर संकेत दिए जाने पर पासवर्ड दर्ज करें।


12

यदि आप ssh सुरंग का उपयोग नहीं करना चाहते हैं, तो my.cnf या mysqld.cnf में आपको लैन पर पहुंच पाने के लिए अपने स्थानीय आईपी पते ( 192.168.1.100 ) के साथ 127.0.0.1 बदलना होगा । उदाहरण bellow:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

के लिए खोज बाँध-पते में my.cnf या mysqld.cnf

bind-address            =  127.0.0.1

और परिवर्तन 127.0.0.1 से 192.168.1.100 (स्थानीय आईपी पता)

bind-address            =  192.168.1.100

आपके द्वारा किए गए परिवर्तन को लागू करने के लिए, अगले आदेश का उपयोग करके mysql सर्वर को पुनरारंभ करना होगा।

sudo /etc/init.d/mysql restart

लैन एरेस के लिए उपयोगकर्ता रूट को संशोधित करें (रिमोट सर्वर में क्वेरी का बेली चलाएं जिसे आप एक्सेस करना चाहते हैं)

root@192.168.1.100:~$ mysql -u root -p

..

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

यदि आप केवल विशिष्ट आईपी पते से पहुंच प्राप्त करना चाहते हैं, तो 'रूट' @ '%' को 'रूट' @ '(आईपी एड्रेस या होस्टल)' में बदलें

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;
FLUSH PRIVILEGES;

तो आप कनेक्ट कर सकते हैं:

nobus@xray:~$ mysql -h 192.168.1.100 -u root -p

ubuntu 18.04 सर्वर पर परीक्षण किया गया


सबसे अच्छा जवाब! धन्यवाद
नस्त्रो

8
  1. कोशिश करो telnet 3306। यदि यह कनेक्शन नहीं खोलता है, तो या तो फ़ायरवॉल सेटिंग है या सर्वर नहीं सुन रहा है (या काम नहीं करता है)।

  2. netstat -anसर्वर पर देखने के लिए चलाएं कि क्या सर्वर है।

  3. यह संभव है कि आप दूरस्थ कनेक्शन की अनुमति न दें।

    Http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html देखें


6

मुझे लगता है कि आपके पास MySQL आपके मशीन पर स्थापित है। गुम विवरण भरने के बाद नीचे दी गई कमांड निष्पादित करें:

mysql -uUSERNAME -pPASSWORD -hHOSTNAME -P3306 



1

इस समाधान ने मेरे लिए काम किया:

आपके दूरस्थ मशीन पर (उदाहरण: 295.13.12.53) को आपके लक्ष्य रिमोट मशीन तक पहुँच प्राप्त होती है (जो mysql सर्वर चलाता है)

ssh -f -L 295.13.12.53:3306:10.18.81.36:3306 user@295.13.12.53

व्याख्या की:

ssh -f -L your_ssh_mashine_ipaddress:your_ssh_mashine_local_port:target_ipaddress:target_port user@your_ip_address -N

your_ssh_mashine_ipaddress - यह स्थानीय IP पता नहीं है, यह IP पता है जिसे आप ssh करते हैं, इस उदाहरण में 295.13.12.53

your_ssh_mashine_local_port -this कस्टम पोर्ट 22 नहीं है, इस उदाहरण में यह 3306 है।

target_ipaddress - उस मशीन का ip जिसे आप DB को डंप करने की कोशिश कर रहे हैं।

target_port - 3306 यह MySQL सर्वर के लिए असली पोर्ट है।

user @ your_ip_address - यह ssh mashine के लिए ssh क्रेडेंशियल है जिसे आप कनेक्ट करते हैं

एक बार यह सब हो जाने के बाद अपनी मशीन पर वापस जाएँ और यह करें:

mysqldump -h 295.13.12.53 -P 3306 -u username -p db_name > dumped_db.sql

पासवर्ड मांगेंगे, अपना पासवर्ड डालेंगे और आप जुड़े रहेंगे। उम्मीद है की यह मदद करेगा।




0

मुझे भी वही त्रुटि मिल रही थी। लेकिन रिमोट mysql सर्वर ans पर नए mysql यूजर बनाकर इसे उपयोगी पाया, फिर कनेक्ट करें। दूरस्थ सर्वर पर निम्न आदेश चलाएँ:

CREATE USER 'openvani'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'localhost WITH GRANT 
OPTION;
CREATE USER 'openvani'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'openvani'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

अब आप निम्नलिखित आदेश के साथ दूरस्थ mysql से जुड़ सकते हैं।

mysql -u openvani -h 'any ip address'-p

यहाँ पूरी पोस्ट है:

http://openvani.com/blog/connect-remotely-mysql-server/


0

mysql सर्वर आमतौर पर केवल लोकलहोस्ट (127.0.0.1) को सुनने के लिए कॉन्फ़िगर किया जाता है, जहां वे वेब एप्लिकेशन द्वारा उपयोग किए जाते हैं।

यदि आपका मामला है, लेकिन आपके पास अपने सर्वर तक एसएसएच पहुंच है, तो आप एक ssh सुरंग बना सकते हैं और उसी के माध्यम से जुड़ सकते हैं।

अपनी स्थानीय मशीन पर, सुरंग बनाएं।

ssh -L 3307:127.0.0.1:3306 -N $user@$remote_host

(यह उदाहरण स्थानीय पोर्ट 3307 का उपयोग करता है, यदि आपके पास भी mysql आपके स्थानीय मशीन पर चल रहा है और मानक पोर्ट 3306 का उपयोग कर रहा है)

अब आप को जोड़ने के लिए एक होना चाहिए

mysql -u $user -p -h 127.0.0.1 -P 3307

0

यह मेरे लिए mysql 8 में काम करता है, hostnameअपने hostname के साथ बदलें और port_numberअपने port_number के साथ, यदि आप रूट नहीं हैं तो आप अपने mysql_user को भी बदल सकते हैं

      mysql --host=host_name --port=port_number -u root -p

अधिक जानकारी यहाँ


0

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

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