होस्ट 'xxx.xx.xxx.xxx' को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है


667

यह मृत सरल होना चाहिए, लेकिन मुझे यह मेरे जीवन के लिए काम करने के लिए नहीं मिल सकता है।
मैं बस अपने MySQL सर्वर से दूरस्थ रूप से कनेक्ट करने का प्रयास कर रहा हूं।

के रूप में कनेक्ट कर रहा है

mysql -u root -h localhost -p  

ठीक काम करता है, लेकिन कोशिश कर रहा है

mysql -u root -h 'any ip address here' -p

त्रुटि के साथ विफल रहता है

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

में mysql.userमेज, वहाँ वास्तव में मेजबान '%' के साथ मेजबान 'स्थानीय होस्ट' एक और रूप के साथ उपयोगकर्ता जड़ 'के लिए एक ही प्रविष्टि है।

मैं अपने दिमाग के अंत में हूं, और आगे बढ़ने का कोई विचार नहीं है। किसी भी विचार का स्वागत है।


सुरक्षा सावधानी के कारण अधिकांश परिस्थितियों में रूट के रूप में लॉगिन नहीं किया जा सकता है ..
AO_

जवाबों:


816

संभवतः एक सुरक्षा एहतियात। आप एक नया व्यवस्थापक खाता जोड़ने का प्रयास कर सकते हैं:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

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

संपादित करें:

MySQL से अक्सर पूछे जाने वाले प्रश्न:

यदि आप यह पता नहीं लगा सकते हैं कि आपको प्रवेश से वंचित क्यों रखा गया है, तो उपयोगकर्ता तालिका से सभी प्रविष्टियों को हटा दें जिसमें होस्ट मान वाइल्डकार्ड (ऐसी प्रविष्टियाँ जिनमें '%' या '_' अक्षर हैं)। एक बहुत ही सामान्य त्रुटि है होस्ट = '%' और उपयोगकर्ता = 'some_user' के साथ एक नई प्रविष्टि सम्मिलित करना, यह सोचकर कि यह आपको उसी मशीन से कनेक्ट करने के लिए लोकलहोस्ट निर्दिष्ट करने की अनुमति देता है। इसका कारण यह नहीं है कि डिफ़ॉल्ट विशेषाधिकार में होस्ट = 'लोकलहोस्ट' और उपयोगकर्ता = '' के साथ एक प्रविष्टि शामिल है। क्योंकि उस प्रविष्टि का होस्ट मान 'लोकलहोस्ट' है जो '%' से अधिक विशिष्ट है, इसका उपयोग स्थानीयहोस्ट से कनेक्ट करते समय नई प्रविष्टि के लिए किया जाता है! सही प्रक्रिया होस्ट = 'लोकलहोस्ट' और यूजर = 'some_user' के साथ दूसरी प्रविष्टि डालने की है। या होस्ट = 'लोकलहोस्ट' और उपयोगकर्ता = '' के साथ प्रविष्टि को हटाने के लिए। प्रविष्टि को हटाने के बाद, अनुदान तालिकाओं को पुनः लोड करने के लिए FLUSH PRIVILEGES विवरण जारी करना याद रखें। खंड 5.4.4, "एक्सेस कंट्रोल, स्टेज 1: कनेक्शन सत्यापन" भी देखें।


17
अच्छा पकड़ यानिक, हालांकि मैं उसे गैर-रूट उपयोगकर्ता को सभी विशेषाधिकार देने की सिफारिश नहीं करूंगा। शायद एक कम सेट?
कोरी बल्लू

3
ठीक है, यह वास्तव में एक अच्छा विचार नहीं होगा, लेकिन सभी मेजबानों से जुड़ने के लिए 'रूट' की अनुमति देना बिल्कुल वैसा ही है, क्योंकि यह समान विशेषाधिकार स्तर पर है।
यानिक मटन

2
मुझे लगता है कि आपको मेरी बात याद आती है पास्कल। मुद्दा यह है कि 'रूट' उपयोगकर्ता के पास पहले से ही वे अधिकार हैं, और वह किसी भी आईपी को उस उपयोगकर्ता के रूप में प्रमाणित करने देना चाहता है। इसलिए यदि यह वास्तव में वही है जो वह चाहता है, तो एक नया प्रशासक उपयोगकर्ता बनाने का डिफ़ॉल्ट उदाहरण (जिसमें बिल्कुल समान अधिकार हैं) जो कोशिश कर रहा है वह एक विकल्प है।
यानिक मटन

2
यह सही है यानिक, मैं उपवास के लिए पढ़ता हूं और अपनी टिप्पणी हटा दूंगा। हालांकि, AFAIK, अनुमतियाँ MySQL में ठीक काम कर रही हैं: 1. शायद ओपी ने अनुदान तालिकाओं को मैन्युअल रूप से संशोधित किया और फिर विशेषाधिकारों को फ्लश करने की आवश्यकता है। 2. शायद उन्होंने रूट के लिए उचित अनुदान सिंटैक्स का उपयोग नहीं किया। एक और प्रशासनिक उपयोगकर्ता जोड़ना एक वैकल्पिक हल हो सकता है लेकिन यह वास्तविक समस्या IMHO को हल नहीं करेगा।
पास्कल थिवेंट

1
मैंने महसूस किया कि सभी मेजबानों को रूट तक पहुँच प्रदान करना एक उचित समाधान नहीं था। इसके बजाय मैंने एक नया उपयोगकर्ता बनाया और विशेषाधिकारों के सेट को कम कर दिया, मेरे द्वारा उपयोग किए गए सेट को MySQL MyBench पर 'DBManager' के रूप में वर्णित किया गया है। मैंने केवल अपने स्थानीय नेटवर्क में विशेष रूप से 192.168.0% के मेजबान के एक निश्चित समूह से पहुंच की अनुमति दी।%
Gustavo Guevara

271

एक phpMyAdmin या कमांड प्रॉम्प्ट के माध्यम से new MySQL Userनीचे के रूप में एक विशेषाधिकार बनाने और असाइन करने के लिए है Query prompt:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

एक बार सभी चार प्रश्नों के साथ, इसे से जुड़ना चाहिए username / password


5
मेरे लिए काम करने के लिए उपरोक्त चरणों को पूरा करने के बाद mysql को पुनः आरंभ करना पड़ा।
टोलबूथ

क्या आपको उपयोगकर्ता नाम @ localhost बनाना है? क्या यह पर्याप्त नहीं है यदि आप केवल उपयोगकर्ता नाम @% बनाते हैं? मेरा मतलब है, यदि आप केवल उपयोगकर्ता नाम @% बनाते हैं, तो क्या आप लोकलहोस्ट से उस उपयोगकर्ता से जुड़ नहीं पाएंगे?
सोरिन पोस्टेलनिकु

1
हाँ बनाने से कोई @localhostमतलब होगा अगर विशेषाधिकार किसी तरह अलग थे, लेकिन यहाँ वे एक ही हैं और यह शायद किसी भी चीज़ की तुलना में अधिक भ्रमित करने वाला है (जैसे एक पर पासवर्ड बदलना दूसरे को महसूस नहीं करना मौजूद है और आपका लॉगिन उस एक को मार सकता है। )।
ब्राचली

एक शुरुआत के रूप में यह वास्तव में मेरी मदद करता है
मुहम्मद नायब

1
धन्यवाद, यह मेरे "SQLSTATE [HY000] [1130] को होस्ट करता है," DESKTOP-xxx.xx "होस्ट को इस मारियाडीबी सर्वर से कनेक्ट करने की अनुमति नहीं है" विंडोज़ में कंटेनरीकृत लार्वा आवेदन में
ज़ुल्कारनैन

117

मेरा त्रुटि संदेश समान था और कहा गया कि ' होस्ट XXX को इस MySQL सर्वर से कनेक्ट करने की अनुमति नहीं है ', हालांकि मैं रूट का उपयोग कर रहा था। यहां यह सुनिश्चित करने के लिए कि रूट की सही अनुमति है।

मेरा सेटअप :

  • उबंटू 14.04 एलटीएस
  • MySQL v5.5.37

समाधान

  1. 'आदि / mysql / my.cnf' के तहत फाइल खोलें
  2. के लिए जाँचे:

    • port (डिफ़ॉल्ट रूप से यह 'port = 3306' है)
    • बाइंड-एड्रेस (डिफ़ॉल्ट रूप से यह 'बाइंड-एड्रेस = 127.0.0.1' है; यदि आप सभी को खोलना चाहते हैं तो बस इस लाइन पर टिप्पणी करें। मेरे उदाहरण के लिए, मैं कहूंगा कि वास्तविक सर्वर 10.1.1.7 पर है)
  3. अब अपने वास्तविक सर्वर पर MySQL डाटाबेस को एक्सेस करें (उपयोगकर्ता रिमोट रूट के रूप में पोर्ट 3306 पर आपका रिमोट एड्रेस 123.123.123.123 है और मैं डेटाबेस 'डेटाट्री' की अनुमति बदलना चाहता हूं। आईपी एड्रेस, पोर्ट, और डेटाबेस का नाम बदलना याद रखें। आपकी सेटिंग में)

    mysql -u root -p
    Enter password: <enter password>
    mysql>GRANT ALL ON *.* to root@'123.123.123.123' IDENTIFIED BY 'put-your-password';
    mysql>FLUSH PRIVILEGES;
    mysql>exit
  4. सुडो सेवा मायस्कल्ड पुनः आरंभ

  5. अब आपको अपने डेटाबेस से रिमोट कनेक्ट करने में सक्षम होना चाहिए। उदाहरण के लिए, मैं MySQL कार्यक्षेत्र का उपयोग कर रहा हूं और 'Hostname: 10.1.1.7', 'Port: 3306', 'Username: root' में डाल रहा हूं

1
आप use dataentryलाइन को छोड़ सकते हैं (क्योंकि अधिकांश लोगों के पास वह डेटाबेस नहीं होगा)।
जेडीजा

3
मैं mysqlअंत में सेवा को फिर से शुरू किए बिना ऐसा करने में सक्षम था
रयान टक

5
FLUSH PRIVILEGESआपको पुनः आरंभ करने की आवश्यकता नहीं है।
एडम बी

इसने मेरे लिए MySQL 5.5 के लिए Windows 10 पर FLUSH PRIVILEGES के साथ काम किया, सेवा को फिर से शुरू किए बिना। Windows पर, सेवा के गुणों को कॉन्फ़िगरेशन के लिए उपयोग की जाने वाली my.ini फ़ाइल की पहचान करनी चाहिए (गुण | सामान्य | निष्पादन योग्य पथ)
FreeText

मैंने यह मान लिया कि बाइंड-एड्रेस = "0.0.0.0" को निर्दिष्ट करके यह सभी इंटरफेस पर सुनेगा और रिमोट कनेक्शन काम करेगा लेकिन मैं गलत था। हां, netstat ने दिखाया कि mysql 0.0.0.0 (सभी इंटरफेस) पर सुन रहा था लेकिन मुझे प्रश्न शीर्षक में त्रुटि मिल रही थी। एक बार जब मैंने बाइंड-एड्रेस लाइन को पूरी तरह से हटा दिया, तो इसने काम करना शुरू कर दिया। अजीब।
हेन्नो

71

आपको किसी भी होस्टनाम से उपयोगकर्ता तक पहुंच प्रदान करने की आवश्यकता है।

यह है कि आप phpmyadmin से नए विशेषाधिकार कैसे जोड़ते हैं

गोटो प्रिविलेज> एक नया उपयोगकर्ता जोड़ें

यहाँ छवि विवरण दर्ज करें

इच्छित उपयोगकर्ता नाम के लिए किसी भी होस्ट का चयन करें

यहाँ छवि विवरण दर्ज करें


65

बस निम्न चरणों का पालन करें:

1a) mysql से कनेक्ट करें (स्थानीयहोस्ट के माध्यम से)

mysql -uroot -p

1 बी) यदि myslq सर्वर कुबेरनेट्स (K8) में चल रहा है और NodePort के माध्यम से पहुँचा जा रहा है

kubectl exec -it [pod-name] -- /bin/bash
mysql -uroot -p

2) उपयोगकर्ता बनाएँ

CREATE USER 'user'@'%' IDENTIFIED BY 'password';

3) अनुदान की अनुमति

 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;

4) फ्लश निजीकृत

FLUSH PRIVILEGES;

4
त्रुटि 1045 (28000): पहुँच उपयोगकर्ता 'जड़' के लिए इनकार किया @ 'स्थानीय होस्ट' (passwoYES का प्रयोग करके) वाई
Gank

11
होना चाहिए *।* ?
sgarg

26

संदेश *Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL serverMySQL सर्वर से MySQL क्लाइंट के लिए एक उत्तर है। ध्यान दें कि इसका आईपी पता कैसे लौटाया जाए और होस्टनाम नहीं।

यदि आप के साथ जुड़ने की कोशिश कर रहे हैं mysql -h<hostname> -u<somebody> -p और यह संदेश आईपी पते के साथ देता है, तो MySQL सर्वर क्लाइंट पर रिवर्स लुकअप करने में सक्षम नहीं है। यह महत्वपूर्ण है क्योंकि यह कैसे MySQL ग्राहक को अनुदान के लिए मैप करता है।

सुनिश्चित करें कि आप nslookup <mysqlclient>MySQL सर्वर से कर सकते हैं । यदि वह काम नहीं करता है, तो DNS सर्वर में कोई प्रविष्टि नहीं है। वैकल्पिक रूप से, आप MySQL सर्वर के HOSTS फ़ाइल में प्रविष्टि डाल सकते हैं ( <ipaddress> <fullyqualifiedhostname> <hostname><- यहाँ आदेश मायने रख सकता है)।

MySQL क्लाइंट के रिवर्स लुकअप की अनुमति देने वाले मेरे सर्वर की होस्ट फ़ाइल में प्रविष्टि ने इस समस्या को हल कर दिया।


1
"MySQL सर्वर से MySQL क्लाइंट के लिए एक उत्तर है।" धन्यवाद, मैं सोच रहा था कि त्रुटि कहां से आ रही थी, मेरी मशीन या सर्वर। मेरे पास त्रुटि है "ERROR 1130 (HY000):" आदि
PJ ब्रुनेट

20

सरल तरीका:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 

फिर

FLUSH PRIVILEGES;

किया हुआ!


% क्या दर्शाता है?
डेटा

1
यह सब कुछ पसंद है। आप उदाहरण की तरह बात कर सकते हैं: WHERE CustomerName LIKE 'a%'- किसी भी मूल्यों को ढूँढता है जो "a"
user5510975

16

यदि आप मैन्युअल रूप से अनुदान तालिकाओं को संशोधित करते हैं (INSERT, UPDATE, आदि का उपयोग करके), तो आपको ए पर अमल करना चाहिए FLUSH PRIVILEGES सर्वर को अनुदान तालिकाएँ पुनः लोड करने के लिए कहने के लिए कथन ।

पुनश्च: मैं किसी भी होस्ट को किसी भी उपयोगकर्ता (विशेषकर rootउपयोग नहीं ) के लिए कनेक्ट करने की अनुमति देने की अनुशंसा नहीं करूंगा । यदि आप क्लाइंट / सर्वर एप्लिकेशन के लिए mysql का उपयोग कर रहे हैं, तो एक सबनेट एड्रेस पसंद करें। यदि आप वेब सर्वर या एप्लिकेशन सर्वर के साथ mysql का उपयोग कर रहे हैं, तो विशिष्ट IP का उपयोग करें।


4

MySql के GUI टूल (SQLyog) द्वारा दिए गए इंटरफ़ेस का उपयोग करें:

उपयोगकर्ता प्रबंधक पर क्लिक करें: यहाँ छवि विवरण दर्ज करें

अब, यदि आप किसी अन्य रिमोट पीसी के लिए पहुँच प्रदान करना चाहते हैं, तो बस सुनिश्चित करें कि, नीचे की तस्वीर की तरह, होस्ट फ़ील्ड मान% है (जो वाइल्डकार्ड है)

यहाँ छवि विवरण दर्ज करें


4

यहां अधिकांश उत्तर आपको दो होस्ट मानों वाले उपयोगकर्ता बनाने के लिए दिखाते हैं: एक के लिए localhost, और एक के लिए %

कृपया ध्यान दें कि रूट जैसे बिल्ट-इन लोकलहोस्ट यूज़र को छोड़कर, आपको ऐसा करने की आवश्यकता नहीं है। यदि आप बस एक नया उपयोगकर्ता बनाना चाहते हैं जो कहीं से भी लॉग इन कर सकता है, तो आप उपयोग कर सकते हैं

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;

और यह ठीक काम करेगा। (जैसा कि दूसरों ने उल्लेख किया है, किसी भी डोमेन से किसी उपयोगकर्ता को प्रशासनिक विशेषाधिकार देना एक भयानक विचार है।)


3

सरल तरीका रूट अकाउंट के साथ phpmyadmin में प्रवेश करना है, वहाँ गोटो mysql डेटाबेस और उपयोगकर्ता तालिका का चयन करें, वहां रूट खाता संपादित करें और होस्ट फ़ील्ड में% वाइल्ड कार्ड जोड़ें। और फिर ssh फ्लश विशेषाधिकारों के माध्यम से

 FLUSH PRIVILEGES;

इससे मुझे इसके साथ जुड़ने में मदद मिली: GRANT ALL PRIVILEGES ON अनुदान विकल्प के साथ '' @ '%';
लंकलास

2

यदि यह हाल ही में स्थापित किया गया mysql है, तो कुछ और बदलने से पहले, बस इस कमांड को निष्पादित करने का प्रयास करें और फिर पुनः प्रयास करें:

flush privileges;

यह अकेले मेरे लिए Ubuntu 16.04, mysql 5.7.20 पर समस्या को ठीक करता है। YMMV।


2

बस अपने होस्टिंग कंट्रोल पैनल से ऐसा करने का एक बेहतर तरीका खोजें (मैं यहां DirectAdmin का उपयोग कर रहा हूं)

बस अपने नियंत्रण कक्ष में लक्ष्य सर्वर DB पर जाएं, मेरे मामले में: MySQL प्रबंधन -> अपने DB का चयन करें -> आप पाएंगे: "एक्सेस होस्ट", बस अपने दूरस्थ होस्ट को यहां जोड़ें और अब इसका काम कर रहे हैं! यहाँ छवि विवरण दर्ज करें

मुझे लगता है कि अन्य सी। पैनल्स जैसे प्लैस आदि पर भी एक समान विकल्प है।

मुझे आशा है कि यह आपके लिए भी उपयोगी था।


2

खैर, उपरोक्त उत्तर में से कुछ भी मेरे लिए काम नहीं किया। काफी खोजबीन के बाद मुझे इसका हल मिला। हालांकि मुझे देर हो सकती है इससे भविष्य में दूसरों की मदद हो सकती है।

किसी टर्मिनल से अपने SQL सर्वर में लॉगिन करें

 mysql -u root -p
 -- root password
GRANT ALL ON *.* to root@'XX.XXX.XXX.XX' IDENTIFIED BY 'password';

यह अनुमति मुद्दे को हल करना चाहिए।

त्रुटि को हल करने से पहले

समस्या हल करने के बाद

हैप्पी कोडिंग !!


1

वैसे आप क्या कर सकते हैं बस mysql.cfg फ़ाइल खोलें और आपको इसके लिए Bind-address बदलना होगा

बाइंड-पता = 127.0.0.1

और फिर mysql को पुनरारंभ करें और आप उस सर्वर को इस से कनेक्ट कर पाएंगे।

यह देखो आप विचार फार्म हो सकता है कि

यह असली सोल है


3
यह संबंधित है, लेकिन समान समस्या नहीं है। मूल रूप से प्राप्त त्रुटि इंगित करती है कि क्लाइंट MySQL सर्वर से सफलतापूर्वक कनेक्ट हो रहा है, लेकिन फिर प्रमाणीकरण विफल हो रहा है। यदि बाइंड-पता 127.0.0.1 पर सेट किया गया था, तो आपको इसके बजाय कनेक्शन अस्वीकृत त्रुटि मिलेगी।
अक्षतंतु

लेकिन यह वह पता है जो सभी होस्ट को सर्वर ना से जुड़ने की अनुमति देगा?
किशन भीमजियानी

लेकिन उपयोगकर्ता के लिए सभी अनुमति देना उस bcoz के लिए बुद्धिमान विकल्प नहीं होगा यदि u के पास क्लाइंट उपयोगकर्ता है और यू को सभी अनुमति के साथ उपयोगकर्ता बनाने की अनुमति नहीं है तो समाधान क्या होगा?
किशन भीमजियानी

1

यदि आप विंडोज पर चल रहे हैं; एक सरल समाधान MySQL सर्वर इंस्टेंस कॉन्फ़िगरेशन विज़ार्ड चलाना है। यह प्रारंभ मेनू में आपके MYSQL समूह में है। अंतिम स्क्रीन से दूसरे पर "रिमोट मशीनों से रूट एक्सेस की अनुमति दें" बॉक्स को क्लिक करें।


1

यदि आपके पास WAMP सर्वर + विंडोज 10 है और आप इसे Wamp Icon => Wamp Settings=> पर राइट क्लिक से विकास के लिए उपयोग कर रहे हैंCheck Allow Virtual Hosts other than 127* यहाँ छवि विवरण दर्ज करें


0

मैं भी इसी मुद्दे का सामना कर रहा था। मैं इसे मेरे लिए 2 मिनट में हल कर दिया मैं cpanel के माध्यम से सिर्फ सफेद सूची आईपी

मान लीजिए कि आप सर्वर B से सर्वर B के डेटाबेस को जोड़ने का प्रयास कर रहे हैं।


0

यह उत्तर किसी की मदद कर सकता है ...

इन सभी जवाबों ने मदद नहीं की, तब मुझे एहसास हुआ कि मैं एक महत्वपूर्ण बात की जाँच करना भूल गया हूँ .. पोर्ट :)

मेरे पास mysql एक अलग बंदरगाह पर चलने वाले docker कंटेनर में चल रहा है। मैं अपने होस्ट मशीन को पोर्ट 3306 पर इंगित कर रहा था, जिस पर मेरा mysql सर्वर चल रहा है। मेरा कंटेनर पोर्ट 33060 पर सर्वर को उजागर करता है। इसलिए यह सब समय, मैं गलत सर्वर को देख रहा था! doh!


0
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

यह त्रुटि क्योंकि रूट का कोई पासवर्ड नहीं है, और हो सकता है कि यह आपके साथ तब हुआ हो जब आप बाहर से कनेक्ट करने का प्रयास कर रहे हों।


0

CPANEL समाधान

Cpanel पर जाएं, दूरस्थ MySQL देखें। इनपुट क्षेत्र में आईपी जोड़ें:

होस्ट (% वाइल्डकार्ड की अनुमति है)

आईपी ​​क्या है यह याद रखने के लिए टिप्पणी करें। यह मेरे लिए था।


0

यह भविष्य के किसी भी दूरस्थ mysql कनेक्शन के लिए काम कर रहा है!

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

उस रेखा पर नेविगेट करें जो बाइंड-एड्रेस निर्देश के साथ शुरू होती है। इसे ऐसा दिखना चाहिए:

    bind-address            = 0.0.0.0

रूट टर्मिनल के रूप में अपने mysql में लॉगिन करें

    mysql -u root -p
    -- root password

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    EXIT;

अंत में उस मशीन को विशेष रूप से डेटाबेस से कनेक्ट करने की अनुमति दें जो दूरस्थ रूप से निम्नलिखित कमांड के साथ है।

    sudo ufw allow from remote_IP_address to any port 3306

-1

इस मौके पर कि किसी को इस समस्या का सामना करना पड़ रहा है, यह SQLyog के भीतर से अनुभव कर रहा है, यह हुआ:

मैं रिमोट डेटाबेस (SQLyog के भीतर से) से जुड़ा था और कुछ घंटों के लिए काम करता था। बाद में मैंने कुछ मिनट के लिए सिस्टम छोड़ दिया, फिर अपना काम जारी रखने के लिए वापस आ गया - ERROR 1130 ! कुछ भी नहीं मैंने कोशिश की काम किया; SQLyog को पुनरारंभ करने से इसे ठीक नहीं किया गया। तब मैंने सिस्टम को फिर से शुरू किया - यह अभी भी काम नहीं किया।

इसलिए मैंने टर्मिनल से जुड़ने की कोशिश की - यह काम किया। फिर इसे SQLyog पर वापस ले लिया ... और यह काम किया। मैं इसे 'रैंडम कंप्यूटर क्वर्कीनेस' के अलावा नहीं समझा सकता, लेकिन मुझे लगता है कि यह किसी की मदद कर सकता है।


-1

यदि आप कनेक्शन को परिभाषित करने वाली mysql क्वेरी को मुंह से परिभाषित करने की कोशिश कर रहे हैं, तो आपको यह त्रुटि मिलेगी।

संभवतः आप निष्पादन से पहले कनेक्शन स्ट्रिंग को परिभाषित करने के लिए क्षमा करते हैं। क्या आपने इसकी जाँच की है? (त्रुटिपूर्ण अंग्रेजी के लिए माफ करें)


-1

समस्या: root @ localhost mysql-community-server के एक नए इंस्टॉलेशन को OpenSUSE 42.2-1.150.x86_64 पर कनेक्ट करने में असमर्थ है। मायिकाल कनेक्शन से इनकार करता है - अवधि।

समाधान:

$ ls -l /var/lib/mysql/mysql/user.*
-rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
-rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
-rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

फ़ाइल user.MYD का आकार 0 है (वास्तव में!)। मैंने अन्य 3 फ़ाइलों को एक अन्य कार्य प्रणाली से कॉपी किया है।

$ /usr/sbin/rcmysql stop
$ cd /var/lib/mysql/mysql/
$ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
$ /usr/sbin/rcmysql start
$ cd -
$ mysql -u root -p

मैं लॉग इन करने में सक्षम था। फिर, सभी स्कीमा विशेषाधिकारों को फिर से लागू करने की बात थी। इसके अलावा, यदि आपने IPv6 को निष्क्रिय कर दिया है, तो इसे अस्थायी रूप से सक्षम करें ताकि रूट @ :: 1 खाता भी काम कर सके।


-1

DirectAdmin के लिए यह काम कर रहा है ;

  1. अपने पास जाओ DirectAdmin
  2. अपने पास जाओ MySQL Management
  3. अपना चयन करें database
  4. आपके Accesse Hostटैब के नीचे , एक फ़ील्ड है। आपको इस फ़ील्ड को भरना चाहिए xxx.xx.xxx.xx
  5. पर क्लिक करें Add Host

ख़त्म होना। अब आप अपने your_database_usernameऔर अपने द्वारा इस DB तक पहुँच सकते हैं your_database_password
बहुत आसन!


-3

यहाँ सभी जवाब मेरे मामले में काम नहीं आए इसलिए मैं भविष्य में अन्य उपयोगकर्ताओं की मदद कर सकता हूं। यह केवल MySQL में ही नहीं, हमारे कोड में भी एक समस्या हो सकती है।

यदि आप उपयोग कर रहे हैं VB.NET

इस कोड के बजाय:

 Dim server As String = My.Settings.DB_Server
 Dim username As String = My.Settings.DB_Username
 Dim password As String = My.Settings.DB_Password
 Dim database As String = My.Settings.DB_Database

 MysqlConn.ConnectionString = "server=" & server & ";" _
 & "user id=" & username & ";" _
 & "password=" & password & ";" _
 & "database=" & database

 MysqlConn = New MySqlConnection()

आपको MysqlConn = New MySqlConnection()पहली पंक्ति पर जाने की आवश्यकता है । तो यह इस तरह होगा

 MysqlConn = New MySqlConnection()

 Dim server As String = My.Settings.DB_Server
 Dim username As String = My.Settings.DB_Username
 Dim password As String = My.Settings.DB_Password
 Dim database As String = My.Settings.DB_Database

 MysqlConn.ConnectionString = "server=" & server & ";" _
 & "user id=" & username & ";" _
 & "password=" & password & ";" _
 & "database=" & database
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.