MySQL 5.7 बाइंड-एड्रेस काम नहीं करता है


17

मैंने हमेशा MySQL 5.5 के लिए एक दूरस्थ कनेक्शन सफलतापूर्वक स्थापित किया है।

आज मैंने Ubuntu 16.04 और MySQL 5.7 के साथ एक नया सर्वर स्थापित किया। लेकिन कुछ कारणों से, मैं इस MySQL स्थापना को अन्य होस्ट्स को सुनने के लिए नहीं बना सकता 127.0.0.1

यहाँ मेरा है /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

मैं दूरस्थ होस्ट से इस MySQL सर्वर से कनेक्ट नहीं कर सका, और जब मैंने अपनी जाँच की netstat, तो मैंने महसूस किया कि MySQL localhostकेवल कनेक्शन से सुनता है ।

lsof -Pni :3306 आउटपुट है:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

समस्या क्या है?


क्या तुमने mysql उछाल दिया? Netstat -lntp का आउटपुट क्या है?
21

@Linuxx मैंने पूरी मशीन को फिर से शुरू किया। tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast

मुझे लगता है कि आपने उस फ़ाइल में वह पंक्ति जोड़ दी है। उस लाइन को हटा दें और फ़ाइल /etc/mysql/mysql.conf.d/mysqld.cnf को संपादित करें और वहां पैरामीटर बदलें।
21

1
@Linuxx यह जादू की तरह काम करता है :) मैंने इस बात पर ध्यान नहीं दिया कि अभी तक एक और .conf.d निर्देशिका है। इसलिए मूल रूप से 5.7, [mysql] कॉन्फिग डायरेक्टरी में कॉन्फिगर करता है, जबकि [mysqld] कॉन्फिग्स mysql.conf.d में रखा जाता है। धन्यवाद! कृपया, एक उत्तर दें, इसलिए मैं इसे स्वीकार करूंगा।
Hast

1
मैंने दोनों /etc/mysql/mysql.conf.d/mysqld.cnf और /etc/mysql/conf.d/mysql.cnf, फिर से डे सर्वर को फिर से शुरू करने पर मुझे अभी भी "tcp 0 0 127.0" दिखाई है। 0.1: 3306 "जब मैं चला <netstat -tulpen
चेपेच

जवाबों:


39

उन्होंने MySQL पैकेज को बदल दिया ताकि बाइंड पैरामीटर अभी /etc/mysql/mysql.conf.d/mysqld.cnf में हो। कृपया वहां बाइंड पैरामीटर बदलें और आपके द्वारा /etc/mysql/conf.d/mysql.cnf में रखी गई किसी भी चीज़ को हटा दें।


यह हालांकि हास्यास्पद है। "Conf.d" का उद्देश्य पैकेज द्वारा प्रदान की गई चूक को संपादित नहीं करना था और अपने स्वयं के विन्यास द्वारा ओवरराइड करना था। लेकिन जैसा कि अब "mysql.conf.d" हमारा ओवरराइड कर रहा है, यह सुनिश्चित करने का कोई विश्वसनीय तरीका नहीं है कि हमारा आखिरी समय तब तक आता है जब तक कि हम "mysql.conf.d / mysqld.cnf" को संपादित नहीं करते।
केएन

@kenn: mysql.conf.d के बजाय अपना कॉन्फिगर जोड़ें और इसे "x- समथिंग" नाम दें
Bell

3
ज़रूर, लेकिन फिर "conf.d" का क्या मतलब है? क्या "mysql.conf.d" एक पैकेज-प्रदत्त चूक नहीं है, जिसे "ओवरसीज" द्वारा अधिलेखित किया जाना चाहिए? मुझे लगता है कि MySQL पैकेज स्तर पर "conf.d" और "mysql.conf.d" का लोड ऑर्डर "/etc/mysql/my.cnf" में उलटा होना चाहिए।
kenn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.