'লোকালহোস্ট' ব্যবহার করে কিন্তু '127.0.0.1' ব্যবহার করে মাইএসকিউএলে কানেক্ট করতে পারবেন না ঠিক?


12

আমার / ইত্যাদি / হোস্ট ফাইলটি দেখতে এমন দেখাচ্ছে:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

সার্ভারটি তৈরি করার সময় আমি খুঁজে পেয়েছি যে, যদিও আমি লোকালহোস্টকে সাফল্যের সাথে পিং করতে পারি, পোস্টফিক্স এবং অ্যাপাচি এবং ডোভকোটের মতো পরিষেবার জন্য নির্দিষ্ট কনফিগারেশন ফাইলগুলিতে, তাদের কাজ করার জন্য আমার 127.0.0.1পরিবর্তে নির্দিষ্ট করা দরকার localhost

আমার কিছু ডাটাবেস চালিত ওয়েবসাইটগুলির কনফিগারেশন ফাইলগুলিও পরিবর্তন করা দরকার যা localhostমাইএসকিউএলে সংযোগ করার জন্য ব্যবহৃত হত ।

আমি hostsফাইলটিতে বিভিন্ন পরিবর্তন করার চেষ্টা করেছি , তবে আমি এখন পর্যন্ত যা কিছু চেষ্টা করেছি তা সাহায্য করে নি।

সার্ভারটি উবুন্টু 12.04.02 এলটিএসে চলছে। এতে সেলিনাক্স ইনস্টল করা নেই এবং উপরের পরিস্থিতি আইপিটিবেলস ডিফল্ট নীতিগুলি সেগুলি গ্রহণ এবং ফ্ল্যাশ করার জন্য সেট করার পরেও রয়ে গেছে।

উত্তর:


15

আপনি যা যা পরীক্ষা করতে পারেন তা হ'ল (যার জন্য আপনাকে মাইএসকিউএল কনসোলে লগইন করতে হবে) - আপনার rootমাধ্যমে লগইন করার অনুমতি রয়েছে কিনা তা পরীক্ষা করে দেখুন localhost

mysql -h 127.0.0.1 -u root -p

- একবার আপনি সফলভাবে লগ ইন করেছেন -

mysql> select user,host from mysql.user;
+------+--------------------------------+
| user | host                           |
+------+--------------------------------+
| root | 127.0.0.1                      | 
| root | ::1                            |
| root | localhost                      | <-- Make sure you have a localhost entry for root
+------+--------------------------------+
3 rows in set (0.00 sec)

এটি কেবল সেখানে ফেলে দেওয়া হচ্ছে, যদি সমস্যাটি হয় তবে এটিই।


আমি অনুভব করছি আপনি সঠিক পথে আছেন। আমি এটি করেছি এবং আমি দেখতে পাচ্ছি যে যদিও স্থানীয় এবং হোস্টের জন্য মূল এবং দু'জন ব্যবহারকারীর তৈরি করা হয়েছিল, ব্যবহারকারীদের জন্য হোস্টিং কন্ট্রোল প্যানেলের দ্বারা তৈরি করা সমস্তই 127.0.0.1(যা একটিকে বাদ দিয়ে %)। আমি মনে করি এটি সংশোধন করার জন্য এটি সম্ভবত আমার পক্ষে যথেষ্ট প্রকাশ করেছে, তাই আমি সম্ভবত আপনার উত্তরটি অল্প সময়ের মধ্যেই গ্রহণ করব।
পিটার স্নো

সাহায্যের জন্য ধন্যবাদ! আমি যুক্ত করতে চাই যে পরিবর্তনটি প্রভাবিত হওয়ার জন্য mysql.user টেবিলটি আপডেট করার পরে একটি mysql সার্ভার পুনঃসূচনা প্রয়োজন।
অভাবনীয়

যদিও গৃহীত হয়েছে, এটি মাইএসকিএল-এর জন্য সাধারণত (কখনও?) সমস্যা নয়। দেখুন EEAA এর উত্তর পরিবর্তে (মাইএসকিউএল ব্যাখ্যা localhostহিসাবে socketপরিবর্তে TCP)।
টুলমেকারস্টেভ

8

বেশিরভাগ মাইএসকিউএল ক্লায়েন্টরা এই বিষয়ে মতবিরোধ করতে পারে যে আপনি হোস্টকে হিসাবে উল্লেখ করলে তারা এটিকে localhostটিসিপি সংযোগের পরিবর্তে সকেট সংযোগে উপন্যাস দেয়। আপনার বিকল্পগুলি হয় হয় সাথে আটকে থাকা 127.0.0.1বা, যদি ক্লায়েন্ট এটি সমর্থন করে (যেমন mysql সি এল এল বাইনারি --protocolপতাকা সহ করে ), এটি ইউনিক্স সকেটের পরিবর্তে টিসিপি ব্যবহার করতে বাধ্য করুন।


ধন্যবাদ ইইএএ সমস্যাটি হ'ল জুমলা ইনস্টলারের মতো জিনিসগুলি ব্যর্থ হয়। ইনস্টলেশন চলাকালীন হোস্টনাম ফিল্ডের 127.0.0.1পরিবর্তে আপনি যদি নির্দিষ্ট করে localhostথাকেন তবে এটি ইনস্টলেশন পাথগুলি আমাকে অন্য ত্রুটিগুলি দিয়ে মেসেজ করে দেয়, তবে নির্দিষ্ট করে লোকালহোস্ট ডাটাবেস সংযোগ করতে ব্যর্থ হয়! এই পরিস্থিতির কারণ কী? আমার কেন আছে?
পিটার তুষার

3
@ পিটারস্নো আপনার মাইএসকিউএল কনফিগারেশনে একটি ইউনিক্স ডোমেন সকেট সেট আপ করুন।
মাইকেল হ্যাম্পটন

ধন্যবাদ @ মিশেলহ্যাম্পটন আমি গত অর্ধ ঘন্টা অনুসন্ধান করেছি এবং কীভাবে এটি সেট আপ করতে পারি তা খুঁজে পাচ্ছি না। আপনি কি আমাকে একটি নিবন্ধে নির্দেশ করতে পারেন বা আমাকে কিছু ধারণা দিতে পারেন দয়া করে? আমি আছে socket = /var/run/mysqld/mysqld.sockমধ্যে my.cnfএবং ফাইল বিদ্যমান নেই, অনুমতি 777. ধন্যবাদের সহিত মাইএসকিউএল মালিকানাধীন।
পিটার স্নো

@ পিটারস্নো এই পরিবর্তনটি করার পরে আপনি কি মাইএসকিএলডি পুনরায় চালু করেছেন?
EEAA

বর্তমানে আমি এটি জুমলা ইনস্টল স্ক্রিপ্টের মাধ্যমে ব্যবহার করার চেষ্টা করছি। HTTP পৃষ্ঠা হোস্টের নাম জিজ্ঞাসা করে। আমি যদি 127.0.0.1এটি বেছে নিই তবে এটি কার্যকর হয় (তবে স্ক্রিপ্টটি এন্ট্রিটি পরে ব্যবহার করে এবং ব্যর্থ হয় কারণ এটি সমাধানের মতো নামটি প্রত্যাশা করে localhost) তবে আমি যদি localhostডেটাবেস তৈরি করতে সংযোগ স্থাপন করি তবে ব্যর্থ হয়।
পিটার তুষার


1

আপনি এইভাবে অনুমতি পরীক্ষা করতে পারেন:

[learner@localhost ~]$ sudo netstat -npa | grep mysqld  
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      6284/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     233040 6284/mysqld         /var/lib/mysql/mysql.sock

যদি এটি ০.০.০.০.০::৩ on এ শুনছে তার অর্থ হ'ল প্রত্যেকে সেই মাইএসকিএল অ্যাক্সেস করতে পারে।

আপনি my.conf ফাইলে এটির জন্য বাইন্ডিং সম্পাদনা করতে পারেন। লিনাক্সের জন্য এটির জন্য ডিফল্ট পাথ:

[learner@localhost ~]$ sudo vi /etc/my.cnf

আপনি যে আইপি চান তা মঞ্জুরি দেওয়ার জন্য এই লাইনগুলি my.conf ফাইলে যুক্ত করুন।

bind-address = 127.0.0.1   
bind-address = 0.0.0.0

ধন্যবাদ a_lerner, তথ্যের জন্য, যদিও আমি ইতিমধ্যে একটি উত্তর গ্রহণ করেছি।
পিটার তুষার

0

পিএইচপি এখনও ডিফল্ট সকেট অবস্থান ব্যবহার করার চেষ্টা করছে। আপনি যদি মারিয়াডিবি / মাইএসকিউএল ফোল্ডারটি / var / lib / mysql থেকে অন্য কোনও স্থানে সরিয়ে নিয়ে থাকেন তবে এই সমস্যা দেখা দিতে পারে । সমস্যাটি সমাধান করার জন্য আপনাকে /etc/php.ini ফাইলে নতুন সকেটের অবস্থান নির্ধারণ করতে হবে।

mysqli.default_socket =/newDBLocation/mysql/mysql.sock

0

আমি এই সমস্যাটি সিমলিংক তৈরি করে সমাধান করেছি sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock। তবে প্রথমে আমাকে ফোল্ডার তৈরি করতে হবে /var/run/mysqld/কারণ ফোল্ডারটি প্রাথমিকভাবে উপস্থিত ছিল না।


-1

আপনার / tmp এ একটি mysql.sock প্রয়োজন

ln -s /var/lib/mysql/mysql.sock mysql.sock

এর পরে ভাল কাজ করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.