Ubuntu 16.04 (पासवर्ड रहित रूट) में MySQL कार्यक्षेत्र के माध्यम से लोकलहोस्ट से कनेक्ट करने में असमर्थ


19

Oracle वेबसाइट को लगता है कि यह केवल 15 और 14. पर काम करती है। http://dev.mysql.com/downloads/workbench/

मेरे Ubuntu 16.04 मशीनों में से दो भी कनेक्ट करने में सक्षम नहीं लगती हैं (एक्सेस रूट के लिए अस्वीकृत त्रुटि है)

चित्र

यह ठीक है। यह ठीक खुलता है। लेकिन यह लोकलहोस्ट से कनेक्ट नहीं होगा।

किसी को भी किसी भी भाग्य है?


क्या आपने इसे स्रोत से बनाया है? सटीक त्रुटि क्या दी गई है? जब आप एक गलत पासवर्ड निर्दिष्ट करते हैं, तब भी ऐसा ही होता है?

हाँ यह समान है। लेकिन रूट का कोई पासवर्ड नहीं है। और मैं कमांड लाइन पर रूट को सही ढंग से कनेक्ट कर सकता हूं। और मैंने सभी प्रीवियस कॉलेजों की दोहरी जांच की और FLUSH PRIVILEGES; इस बिंदु पर भाग गया कि मैं उत्सुक हूं कि कोई भी 16 से लोकलहोस्ट से जुड़ सकता है, क्योंकि ओरेकल साइट स्पष्ट रूप से 14 और 15 को ही कहती है
जोनाथन

मैंने यह नहीं देखा कि ओरेकल एक दावा करता है कि यह काम नहीं करता है, मैंने सिर्फ ज़ेनियल के लिए एक बाइनरी नहीं देखा। हालाँकि मुझे यहाँ mysql-workbench, package.ubuntu.com/xenial/mysql-workbench दिखाई देता है । यह त्रुटि सॉफ़्टवेयर संगतता त्रुटि की तरह प्रतीत नहीं होती है। Mysql पर लॉगिंग चालू करें और लॉगिंग स्तर को 2 तक बढ़ाएं और देखें कि लॉग आपका अनुरोध दिखाता है या नहीं।

@ bc2946088 mysql-workbench16.04 लिंक के
वीडियोनौथ

क्या आपने ४ विकल्पों में से किसी को भी देखा है? ;-) WB मेरे लिए पूरी तरह से ठीक काम करता है (5.7 btw के साथ)। नीचे प्रमाण।
रिनजविंड

जवाबों:


31

16.04 को अपग्रेड के दौरान कोई पासवर्ड सेट न होने पर डिफ़ॉल्ट रूप से सॉकेट प्रमाणीकरण के लिए सक्षम होने के कारण समस्या होने की संभावना है। यह महत्वपूर्ण चेतावनी 16.04 जारी नोटों में दर्ज की गई है :

MySQL रूट पासवर्ड खाली होने पर पासवर्ड का व्यवहार बदल गया है। पैकेजिंग अब सॉकेट प्रमाणीकरण सक्षम करता है जब MySQL रूट पासवर्ड खाली होता है। इसका मतलब यह है कि एक गैर-रूट उपयोगकर्ता खाली पासवर्ड के साथ MySQL रूट उपयोगकर्ता के रूप में लॉग इन नहीं कर सकता है।

जो भी कारण के लिए, 16.04 के साथ आया MySQL कार्यक्षेत्र कम से कम मेरे लिए MySQL सर्वर के साथ बॉक्स से बाहर काम नहीं करता है। मैंने कई तरीकों से जुड़ने के लिए "लोकल सॉकेट / पाइप" का उपयोग करने की कोशिश की, लेकिन कोई फायदा नहीं हुआ।

समाधान मूल पासवर्ड प्रमाणीकरण पर वापस लौटने के लिए है। आप MySQL में सॉकेट प्रमाणीकरण का उपयोग करके लॉग इन करके ऐसा कर सकते हैं:

sudo mysql -u root

एक बार लॉग इन करने के बाद:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

जो मूल (पुराने डिफ़ॉल्ट) पासवर्ड प्रमाणीकरण पर वापस आ जाएगा। यदि आपने समस्या को ठीक करने के लिए किसी अन्य विधि का प्रयास किया है, तो आप यह सुनिश्चित करना चाहेंगे कि "प्लगइन" फ़ील्ड mysql.user में "dif_token" पर सेट हो, जिसे MySQL में लॉग इन करने के लिए आपको mysqld_safe का उपयोग करना पड़ सकता है। मैं चीजों के साथ छेड़छाड़ कर रहा हूं, जैसे मैंने किया।

इस समाधान के लिए मिगुएल नीटो के ब्लॉग पोस्ट को श्रेय ।


कमाल है, मुझे कभी इसका एहसास नहीं हुआ।
जोनाथन

इसने इसे ठीक कर दिया, लेकिन अगली बार जब मैंने एप अपडेट किया तो यह फिर से टूट गया।
जोनाथन

उपयुक्त अद्यतन आउटपुट क्या था?
माइक एम।

मैंने इसे नहीं देखा, क्योंकि मैंने अगली बार जब तक मैं mysql नहीं चला, तब तक ध्यान नहीं दिया
योनातान

मुझे आश्चर्य है कि अगर यह एक उबंटू 16.04 चीज या एक mysql 5.7 चीज है (क्या यह ओरेकल या कैनोनिकल था जिसने यह बदलाव किया है?)
जोनाथन

23

MySQL 5.7 और अप "रूट" के रूप में कनेक्ट करने का समर्थन नहीं करता है, mysql-workbenchइसलिए आपको एक सामान्य उपयोगकर्ता बनाना होगा और उसी के माध्यम से कनेक्ट करना होगा।

sudo mysql -u root -p

"व्यवस्थापक" नाम का उपयोगकर्ता बनाएं और कनेक्ट करने के लिए इसका उपयोग करें mysql-workbench

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

यह जवाब मेरे लिए एकदम सही था, धन्यवाद जोनाथन।
क्रिस इवांस

2
यह Ubuntu 18.04 के लिए काम करता है
tadeubarbosa

उत्तम। धन्यवाद (१ Thank.०४.२)
रॉन

5

यह सवाल दो साल पुराना हो सकता है लेकिन आज रात mysql-workbench के साथ मेरे काम ने मुझे इसका जवाब दे दिया है।

रूट उपयोगकर्ता अब डिफ़ॉल्ट रूप से user_socket प्रमाणीकरण करता है। रूट को एक्सेस करने का एकमात्र तरीका रूट के रूप में लॉग इन किया जा सकता है।

मुझे यह mysql -u rootरूट उपयोगकर्ता और मानक उपयोगकर्ता दोनों के रूप में चलाकर पता चला ।

यह मानक उपयोगकर्ता के तहत काम नहीं करेगा।

तो मेरा अगला सवाल था - उपयोगकर्ता mysql-workbench को किस रूप में चलाता है। डिफ़ॉल्ट रूप से यह मानक उपयोगकर्ता के रूप में चलता है। इसे रूट यूजर के रूप में चलाने के लिए इसे रूट से चलाना होगा। इसलिए मैं रूट यूजर CLI में गया और 'mysql-workbench' टाइप किया।

फिर मुझे रूट यूजर के लिए सेटिंग में जाना होगा जैसा कि यहाँ दिखाया गया है। फ़ाइल स्थान एक ubuntu 18.04 स्थापना के लिए मान्य है।

रूट कनेक्शन सेटिंग्स mysql-workbench।

यदि वह सॉकेट स्थान अमान्य है, तो आपको रूट या sudo से mysql CLI में जाने और निम्न कमांड चलाने की आवश्यकता होगी।

सॉकेट खोजने के लिए MySQL CLI कमांड।

आपके पास सही सेटिंग्स के बाद कनेक्शन का परीक्षण करें। यह सफल होना चाहिए और आप जाने के लिए तैयार हैं।


इसके लिए शुक्रिया! मुझे पुराने टूल का समर्थन करने के लिए प्रमाणीकरण से संबंधित सुरक्षा संबंधी परिवर्तनों को वापस नहीं लेना चाहिए, जब मैं उस टूल को नए तरीके से कनेक्ट करने के लिए कह सकता हूं।
हारून

क्या मैं इस तरह से स्थानीय कनेक्शन प्राप्त कर सकता हूं? मुझे समझ नहीं आता कि हम टीसीपी / आईपी के माध्यम से क्यों नहीं जुड़ सकते हैं।
जॉन गोन्डेलिस 22

2

मेरे लिए ठीक काम करता है और मैंने कुछ खास नहीं किया। mysql-server-5.7कमांड लाइन से स्थापित और कार्यक्षेत्र दोनों और एक पासवर्ड के साथ एक उपयोगकर्ता सेट करें और सामान्य डेटाबेस अनुमतियों (सामान्य विधि के साथ) की स्थापना करें।

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

और एक डेटाबेस और तालिका के साथ:

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


दिलचस्प। डिस्कवर्ल्ड संदर्भ को प्यार करें। जब मैं mysql संकुल को पुनः कॉन्फ़िगर करता हूं, तो मुझे पासवर्ड बदलने का संकेत नहीं मिलता है। क्या आप? मैं यह सोचने की ओर झुक रहा हूं कि मेरे पास एक भ्रष्ट स्थापित या कुछ संघर्ष है। मुझे लगता है कि मुझे रूट पासवर्ड बदलने के लिए संकेत मिलना चाहिए।
जोनाथन

1

उचित व्यवस्थापकीय विशेषाधिकारों के साथ एक उपयोगकर्ता खाता बनाएँ, जो my_ql कार्यक्षेत्र के माध्यम से कनेक्ट कर सकते हैं, जोकिणी_समूह प्लगइन का उपयोग कर रहा है। ध्यान दें कि यह mysql सर्वर के रूट कनेक्शन के लिए काम नहीं करता है

एक टर्मिनल सत्र से mysql के लिए लॉगऑन:

$sudo mysql

यदि आप ऐसा करने में सक्षम हैं, तो Cort_socket प्लगइन सक्षम है और रूट खाता इस प्लगइन का उपयोग करके प्रमाणित कर रहा है। ध्यान दें कि यह सुरक्षित स्थापना स्क्रिप्ट चलाने के बाद ubuntu पर mysql स्थापित करते समय डिफ़ॉल्ट सेटअप है।

सबसे पहले अपने अकाउंट 'वैलेरी' के लिए mysql यूजर बनाएं:

mysql> CREATE USER 'valerie'@'localhost' IDENTIFIED WITH auth_socket;

खाते के लिए प्रशासनिक विशेषाधिकार सक्षम करें:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'valerie'@'localhost' WITH GRANT OPTION;

शेल से बाहर निकलें:

mysql> exit

फिर mysql कार्यक्षेत्र में:

  1. एक नया कनेक्शन बनाएँ
  2. स्थानीय सॉकेट / पाइप के रूप में कनेक्शन विधि का चयन करें
  3. सॉकेट / पाइप पथ को इसमें सेट करें: /var/run/mysqld/mysqld.sock (ध्यान दें कि यह डेबियन / उबंटू प्रणाली के लिए पथ है और लिनक्स के अन्य स्वादों के लिए बदलता है)
  4. इस उदाहरण में उपयोगकर्ता नाम ('वैलेरी') सेट करें

फिर आपको इस कनेक्शन के साथ mysql सर्वर से कनेक्ट करने में सक्षम होना चाहिए।


0

इसे इस्तेमाल करे

mysql डेटाबेस का चयन करें

1: mysql का उपयोग करें;

2: उपयोगकर्ता सेट प्लगइन = 'mysql_native_password' जहाँ उपयोगकर्ता = 'रूट';

3: फ्लश विशेषाधिकार;

4: बाहर निकलें;

~ $ sudo सेवा mysql पुनरारंभ


0

AWS होस्ट पर MySQL सर्वर Ubuntu 16.04 चल रहा है; उबंटू 16.04 लैपटॉप पर mysql-workbench; KeyPair कनेक्शन का उपयोग करता है।

टेस्ट डीबी कनेक्शन स्थापित करने के बाद काम कर रहा था। लेकिन जोनाथन लीडर्स द्वारा पोस्ट किए गए संदेश की तरह वास्तविक कनेक्शन हमेशा विफल रहा। लॉग की जाँच की ~/.mysql/workbench/logऔर कुछ "अनुमति अस्वीकृत" संदेशों को पाया।

अब मुझे अपने साथ काम करने के लिए mysql-workbench मिल सकता है: sudo mysql-workbench

और बाद में मैं जा सकता हूं और chmodनिर्देशिका को अनुमति की आवश्यकता है।


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