সকেট '/tmp/mysql.sock এর মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযুক্ত হতে পারে না


126

আমি যখন আমার পরীক্ষার স্যুট চলাকালীন স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করেছি তখন এটি ত্রুটির সাথে ব্যর্থ হয়:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

যাইহোক, আমি সর্বদা সক্ষম হয়েছি, কমান্ড লাইন mysqlপ্রোগ্রামটি চালিয়ে মাইএসকিউএলে সংযুক্ত হতে পারি । একটি ps aux | grep mysqlসার্ভার চলমান দেখায় এবং stat /tmp/mysql.sockসকেট বিদ্যমান তা নিশ্চিত করে। তদুপরি, আমি যদি exceptএই ব্যতিক্রমটির ধারাটিতে একটি ডিবাগারটি খুলি, তবে আমি ঠিক একই পরামিতিগুলির সাথে নির্ভরযোগ্যভাবে সংযোগ করতে সক্ষম।

এই সমস্যাটি মোটামুটি নির্ভরযোগ্যভাবে পুনরুত্পাদন করে, তবে এটি 100% বলে মনে হয় না, কারণ প্রতিবার নীল চাঁদে আমার পরীক্ষার স্যুটটি আসলে এই ত্রুটিটি আঘাত না করেই চালিত হয়। আমি যখন sudo dtrussএটি দিয়ে চালানোর চেষ্টা করেছি তখন পুনরুত্পাদন হয়নি।

সমস্ত ক্লায়েন্ট কোড পাইথনে রয়েছে, যদিও আমি কীভাবে এটি প্রাসঙ্গিক তা বুঝতে পারি না।

হোস্টটি ব্যবহার করতে স্যুইচ করা 127.0.0.1ত্রুটি তৈরি করে:

DatabaseError: Can't connect to MySQL server on '127.0.0.1' (61)

1
এটা কি সম্ভব যে আপনি কোনও কোনও উপায়ে অনেকগুলি একই সাথে সংযোগ সহ ডাটাবেসটিকে আঘাত করছেন? max_connectionsআপনার মাইএসকিউএল কনফ ফাইলটিতে চেষ্টা করার চেষ্টা করছেন ?
dgel

2
mysql -h 127.0.0.1কমান্ডলাইন থেকে কাজ করে ? আমি এতটা নিশ্চিত নই যে আপনার মাইএসকিএল সার্ভারটি আসলে টিসিপি পোর্টে শুনছে।
এলি

1
আপনি কি নিশ্চিত যে আপনার মাইএসকিউএল সংস্করণটির জন্য পাইথন মাইএসকিউএল ক্লায়েন্ট লাইব্রেরির সঠিক সংস্করণ রয়েছে? এছাড়াও, mysql -h localhostনির্ভরযোগ্যভাবে কাজ করে ?
পুরাতন প্রো

2
মাইএসকিউএল ত্রুটি লগ কিছু লগ ইন করে? এছাড়াও, /tmp/mysql.sock এবং আপনার মাইএসকিএল ডেটা ডিরেক্টরিতে ফাইল অনুমতি পরীক্ষা করুন। আপনি যদি পরীক্ষা স্যুটটি রুট (sudo) হিসাবে চালান তবে ত্রুটিগুলিও ঘটে?
এরিক সিডারস্ট্র্যান্ড

2
এই পরামর্শগুলির অনেকগুলি সরকারী মাইএসকিউএল রেফারেন্স ম্যানুয়াল দ্বারা আচ্ছাদিত যা আমি নীচে আমার প্রতিক্রিয়াতে উল্লেখ করি। মাইএসকিউএল রেফারেন্স ম্যানুয়াল পরামর্শগুলিতে নিয়মিতভাবে পরামর্শের মধ্য দিয়ে যাওয়া এই সময়ের মধ্যে আরও একটি ভাল ব্যবহার
jtoberon

উত্তর:


152
sudo /usr/local/mysql/support-files/mysql.server start 

এটি আমার পক্ষে কাজ করেছে। যাইহোক, যদি এটি কাজ না করে তবে নিশ্চিত করুন যে মাইএসকিএলড চলছে এবং সংযোগের চেষ্টা করছেন।


1
আমি 2 সপ্তাহেরও বেশি সময় ব্যয় করেছি (এমনকি মজাও করছি না) এবং এটিই আমি শেষ পর্যন্ত সংযোগ করতে সক্ষম হয়েছি is এটি অবশ্য 'মাইএসকিএল শুরু করে' আটকে আছে ..... তবে ধন্যবাদ, সুন্দর পোস্ট!
এল ক্লটজ

2
sudo: /usr/local/mysql/support-files/mysql.server: কমান্ড পাওয়া যায় নি। কেন?
সিয়াম পিল্লাই

1
সুডোর পরে কোলন কেন? পথটি বিদ্যমান কিনা তা দেখুন
প্রত্যয়


1
PID ফাইল আপডেট না করে সার্ভারটি প্রস্থান করে (/var/lib/mysql/Saranshs-MacBook-Pro.local.pid)।
saran3h

89

মাইএসকিউএল ম্যানুয়ালটির সম্পর্কিত বিভাগটি এখানে । আমি তালিকাভুক্ত ডিবাগিং পদক্ষেপগুলি অতিক্রম করে শুরু করব।

এছাড়াও, মনে রাখবেন যে লোকালহোস্ট এবং 127.0.0.1 এই প্রসঙ্গে একই জিনিস নয়:

  • হোস্ট যদি সেট করা থাকে localhost, তবে একটি সকেট বা পাইপ ব্যবহার করা হবে।
  • হোস্টটি সেট করা থাকলে 127.0.0.1ক্লায়েন্ট টিসিপি / আইপি ব্যবহার করতে বাধ্য হয়।

সুতরাং, উদাহরণস্বরূপ, আপনি পরীক্ষা করতে পারেন আপনার ডাটাবেসটি টিসিপি সংযোগগুলির জন্য শুনছে vi netstat -nlp। দেখে মনে হচ্ছে এটি টিসিপি সংযোগের জন্য শুনছে কারণ আপনি বলছেন যে mysql -h 127.0.0.1ঠিক কাজ করে। আপনি সকেটের মাধ্যমে আপনার ডাটাবেসে সংযোগ করতে পারেন কিনা তা পরীক্ষা করতে, ব্যবহার করুন mysql -h localhost

যদি এর কোনওটিই সহায়তা করে না, তবে সম্ভবত আপনার মাইএসকিউএল কনফিগারেশন সম্পর্কিত আরও বিবরণ পোস্ট করা দরকার, ঠিক কীভাবে আপনি সংযোগটি ইনস্ট্যান্ট করছেন ইত্যাদি post


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

1
কী বিজোড় ভোট। আমি প্রতিষ্ঠিত পদ্ধতিটি বেশ কয়েকটি কারণে পোস্ট করেছি: (1) অন্যান্য ব্যক্তিরা প্রতিষ্ঠিত পদ্ধতির কেবলমাত্র একটি অংশ পোস্ট করছিলেন এবং ডিবাগিং সম্পর্কে পদ্ধতিগত হওয়া ভাল, (২) লোকালহোস্ট বনাম 127.0.0.1 সম্পর্কে কিছু বিভ্রান্তি বলে মনে হয়েছিল এবং (3) ) একই "স্থানীয় মাইএসকিএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না" উপসর্গযুক্ত অন্যান্য ব্যক্তিরা এই প্রশ্নটিতে হোঁচট খাওয়ার সম্ভাবনা রয়েছে। আমি সচেতন যে সম্ভবত এটি পাইথন ক্লায়েন্ট, তাই আমি আরও তথ্যের জন্য জিজ্ঞাসা করেছি, যেমন সংযোগটি কীভাবে ইনস্ট্যান্ট করা হচ্ছে about
jtoberon

3
+1 এসএসএল টানেলের মাধ্যমে ( localhostহোস্ট হিসাবে ব্যবহার করে ) মাইএসকিএলে কানেক্ট করার চেষ্টা করার সময় আমি এই ত্রুটিটি পাচ্ছিলাম । 127.0.0.1এটি স্থির করতে পরিবর্তন করা হচ্ছে ।
ক্রোক

রেকর্ডের জন্য, এটি আমার সমস্যাটিকে সমাধান করেছে: "সকেট '/tmp/mysql.sock' এর মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না" "।
প্রিনসিস

ধন্যবাদ! ডকার মেরিডব ধারকটির সাথে সংযোগ দেওয়ার চেষ্টা করার সময় এটি আমার পক্ষে এই সমাধানটি কাজ করেছিল।
লুসিয়ান ওপেনা

86

আমার জন্য সমস্যা ছিল আমি মাইএসকিএল সার্ভার চালাচ্ছিলাম না। প্রথমে সার্ভার চালান এবং তারপরে এক্সিকিউট করুন mysql

$ mysql.server start
$ mysql -h localhost -u root -p

28

আমি আমার দোকানে এটি ঘটতে দেখেছি যখন আমার ডিভস-এর এমএএমপি-র মতো স্ট্যাক ম্যানেজার থাকে যা মাইএসকিউএল-এর সাথে কোনও প্রাক-মানচিত্রে ইনস্টল করা থাকে না।

আপনার টার্মিনাল রান

mysql_config --socket

এটি আপনাকে সোক ফাইলটিতে আপনার পথ দেবে। সেই পথটি ধরুন এবং আপনার DATABASES হোস্ট প্যারামিটারে এটি ব্যবহার করুন।

আপনার যা করা দরকার তা হ'ল আপনার point

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'test',
        'PASSWORD': 'test',
        'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
        'PORT': '',
    },
}

বিঃদ্রঃ

which mysql_configআপনার যদি মেশিনে মাইএসকিএল সার্ভারের একাধিক ইনস্টল ইনস্টল থাকে তবে আপনি ভুলটির সাথে সংযোগ স্থাপন করতে পারেন তাও চালান ।


যদি আপনার মোজা ফাইলটি অনুপস্থিত থাকে তবে কী হবে?
অ্যালেক্সভ্যালিজো

আর এক জোড়া কিনে? জে / কে মানে মাইএসকিএল পরিষেবা চলছে না running আপনার
মাইএসকিএল

6
আমার ক্ষেত্রে, "লোকালহোস্ট" থেকে "127.0.0.1" এ HOST পরিবর্তন করা সমস্যার সমাধান করেছে।
lucaswxp

@ লুকাশওয়ক্স: আমার ক্ষেত্রে আমাকে ডোমেন নাম দিয়ে লোকালহোস্ট পরিবর্তন করতে হবে
আনশুল মিশ্র

19

আমি এইমাত্র পরিবর্তন HOSTথেকে localhostথেকে 127.0.0.1এবং এটি কাজ করে জরিমানা:

# settings.py of Django project
...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '',
},
...

4
আপনি কোন ফাইলটি পরিবর্তন করেছেন এবং এটি কোথায় রয়েছে তা জেনে ভাল লাগবে
এম্পি

1
ইন settings.pyপ্রকল্পের।
সিরবিটো এক্স

11

আপনি যদি ম্যাক ওএসএক্সে আপনার ডেমন মাইএসকিএল হারিয়ে ফেলেন তবে ব্যক্তিগত / ভারে উদাহরণ দেওয়ার জন্য অন্য পথে উপস্থিত থাকলে নিম্নলিখিত কমান্ডটি করুন

1)

ln -s /private/var/mysql/mysql.sock /tmp/mysql.sock

2) আপনার সংযোগটি এর সাথে মাইএসকিএলে পুনরায় চালু করুন:

mysql -u username -p -h host databasename

মারিয়াডাবের জন্যও কাজ করে


9

টার্মিনালে নীচের সিএমডি চালান

, / Usr / স্থানীয় / MySQL / বিন / mysqld_safe

এখানে চিত্র বর্ণনা লিখুন

তারপরে কার্যকর হওয়ার জন্য মেশিনটি পুনরায় চালু করুন। এটি কাজ করে !!


1
এটি আমার জন্য একটি আইএম্যাক চলমান উচ্চ সিয়েরা যা কাজ করে মোজেভে উন্নীত করা হয়েছিল তার জন্য আমার পক্ষে কাজ করেছিল। মাইএসকিএল.সোক ফাইলটি টেম্পে ছিল এবং আপগ্রেডে মুছে ফেলা হয়েছিল must মাইএসকিউএল শুরু করার সময় সকেটটি স্বয়ংক্রিয়ভাবে তৈরি হওয়ার সাথে সাথে আপনার কেবল মাইএসকিউএলটি বন্ধ হয়ে গেছে তা নিশ্চিত হওয়া দরকার এবং তারপরে এটি উপরের মত নিরাপদ মোডে শুরু করুন। Mysql.sock ফাইলটি যাদুতে প্রদর্শিত হবে।
ডেভিড

8

Lsof কমান্ড ব্যবহার করে মাইএসকিএল প্রক্রিয়াটির জন্য মুক্ত ফাইলগুলির সংখ্যা পরীক্ষা করুন।

খোলা ফাইলগুলির সীমা বৃদ্ধি করুন এবং আবার চালান।


আমি এটির আগেও চলে এসেছি এবং আপনি নিজের .cnf ফাইলের মাধ্যমে কেবল এটি করতে সক্ষম হবেন না। ulimitআপনার ক্লায়েন্ট এবং সার্ভারকে খোলার জন্য অনুমোদিত মঞ্জুরিপ্রাপ্ত ফাইলগুলির সংখ্যা বাড়ানোর প্রয়োজন হতে পারে। আপনি যদি উবুন্টুর সাম্প্রতিক সংস্করণে থাকেন তবে এর জন্য / ইত্যাদি / initে মাইএসকিএল আপস্টার্ট স্ক্রিপ্ট সম্পাদনা করার প্রয়োজন হতে পারে তবে আশা করি আপনি এটি কেবল .cnf ফাইলটিতে করতে পারেন।
এন্ড্রোনড

8

এই সমাধানগুলির কয়েকটি চেষ্টা করার পরেও এবং কোনও সাফল্য না পেয়ে, এটি আমার পক্ষে কাজ করেছে:

  1. সিস্টেম পুনরায় চালু করুন
  2. mysql.server শুরু করুন
  3. সফল!

7

এটি নিম্নলিখিত সমস্যাগুলির মধ্যে একটি হতে পারে।

  1. ভুল মাইএসকিএল লক। সমাধান: আপনাকে সঠিক মাইএসকিএল সকেটটি খুঁজে বের করতে হবে,

mysqladmin -p পরিবর্তনশীল | গ্রেপ সকেট

এবং তারপরে এটি আপনার ডিবি সংযোগ কোডে রাখুন:

pymysql.connect(db='db', user='user', passwd='pwd', unix_socket="/tmp/mysql.sock")

/tmp/mysql.sock গ্রেপ থেকে ফিরে আসে

2. ভুল মাইএসকিএল বন্দরের সমাধান: আপনাকে সঠিক মাইএসকিএল পোর্টটি বের করতে হবে:

mysqladmin -p variables | grep port

এবং তারপরে আপনার কোডে:

pymysql.connect(db='db', user='user', passwd='pwd', host='localhost', port=3306)

3306 পোর্টটি গ্রেপ থেকে ফিরে আসে

আমি মনে করি প্রথম বিকল্পটি আপনার সমস্যার সমাধান করবে।


6

যারা হোমব্রিউয়ের মাধ্যমে 5.7 থেকে 8.0 পর্যন্ত আপগ্রেড করেছেন তাদের ক্ষেত্রে আপগ্রেডটি সম্পূর্ণ না হওয়ায় সম্ভবত এই ত্রুটি ঘটেছে। আমার ক্ষেত্রে, mysql.server startআমাকে নিম্নলিখিত ত্রুটিটি পেয়েছে:

ত্রুটি! সার্ভার PID ফাইল আপডেট না করেই প্রস্থান করে

আমি তারপরে লগ ফাইলটি চেক করেছিলাম cat /usr/local/var/mysql/YOURS.err | tail -n 50এবং নিম্নলিখিতটি পেয়েছি:

InnoDB: ক্র্যাশ সমর্থিত না হওয়ার পরে আপগ্রেড করুন।

আপনি যদি একই mysql@5.7নৌকোটিতে থাকেন তবে প্রথমে হোমব্রিউয়ের মাধ্যমে ইনস্টল করুন, সার্ভারটি বন্ধ করুন এবং তারপরে আবার 8.0 সিস্টেমটি শুরু করুন।

brew install mysql@5.7

/usr/local/opt/mysql@5.7/bin/mysql.server start
/usr/local/opt/mysql@5.7/bin/mysql.server stop

তারপর,

mysql.server start

এটি আপনার মাইএসকিউএল (8.0) আবার কাজ করবে।


আমি ERROR! The server quit without updating PID fileআবার একই পেতে ।
awebartisan

আমার ক্ষেত্রে আমি সবেমাত্র mysql@5.7 ইনস্টল করেছি এবং সর্বশেষতম সরিয়েছি। সব শুরু। কোনও ডাটাবেস মোছা হয়নি।
অ্যান্ড্রু লুকা

4

আমি মনে করি কিছুক্ষণ আগে আমি এই একই আচরণ দেখেছি, তবে বিশদটি মনে করতে পারছি না।
আমাদের ক্ষেত্রে, সমস্যাটি সেই মুহুর্তে যখন টেস্টরুনারটি প্রয়োজনীয় প্রথম ডাটাবেস ইন্টারঅ্যাকশন সম্পর্কিত ডাটাবেস সংযোগের সূচনা করে, উদাহরণস্বরূপ, সেটিংস.পি বা কিছু __init__.py এ কোনও মডিউল আমদানি করে। আমি আরও কিছু তথ্য খনন করার চেষ্টা করব, তবে এটি ইতিমধ্যে আপনার ক্ষেত্রে একটি ঘণ্টা বাজতে পারে।


4

আপনার / ইত্যাদি / হোস্টগুলি এতে রয়েছে 127.0.0.1 localhostএবং এটি ঠিকঠাক কাজ করা উচিত তা নিশ্চিত করুন


আশ্চর্যজনকভাবে (শ্রদ্ধার সাথে) এটি আমার জন্য এটি বাছাই করেছে - এটি যাচাই করার সময় আমি দেখতে পেলাম যে ওয়েবডাভ স্থাপনের চেষ্টা করার সময় মাভারিক্স আমার হোস্ট ফাইলে কিছু অতিরিক্ত (পুরোপুরি গার্ডড) লাইন যুক্ত করেছিল - একটি স্থানীয় লোকালহস্তকে পুনরায় বরাদ্দ করা সহ।
রব_ওয়াস_

4

এই দুটি বিষয়ে আমার দুটি কৌতুকপূর্ণ অনুমান আছে

সংযোগ # 1

/tmp/mysql.sockফাইল অ্যাক্সেস করতে না পারার সম্ভাবনাটি দেখুন । আমি যখন মাইএসকিউএল ডাটাবেসগুলি সেটআপ করি তখন আমি সাধারণত সকেট ফাইল সাইটটিতে প্রবেশ করি /var/lib/mysql। আপনি যদি মাইএসকিএল হিসাবে লগইন করেন তবে root@localhostআপনার ওএস সেশনের /tmpফোল্ডারে অ্যাক্সেস দরকার । /tmpওএসে সঠিক অ্যাক্সেসের অধিকার রয়েছে তা নিশ্চিত করুন । এছাড়াও, নিশ্চিত করুন যে সুডো ব্যবহারকারী সর্বদা ফাইল পড়তে পারে /tmp

সংযোগ # 2

127.0.0.1আপনি মনোযোগ না দিলে মাইএসকিএল মাধ্যমে অ্যাক্সেস কিছুটা বিভ্রান্তির কারণ হতে পারে। কিভাবে?

কমান্ড লাইন থেকে, আপনি যদি মাইএসকিউএল এর সাথে সংযুক্ত হন তবে আপনাকে 127.0.0.1টিসিপি / আইপি প্রোটোকল নির্দিষ্ট করার প্রয়োজন হতে পারে।

mysql -uroot -p -h127.0.0.1 --protocol=tcp

বা ডিএনএস নাম ব্যবহার করে দেখুন

mysql -uroot -p -hDNSNAME

এটি লগ ইন হিসাবে বাইপাস করবে root@localhost, তবে নিশ্চিত হয়ে নিন যে আপনি root@'127.0.0.1'সংজ্ঞায়িত করেছেন।

পরের বার আপনি মাইএসকিউএল-এ সংযোগ স্থাপন করুন, এটি চালান:

SELECT USER(),CURRENT_USER();

এটি আপনাকে কী দেয়?

  • ব্যবহারকারী () কীভাবে আপনি মাইএসকিউএলে প্রমাণীকরণের চেষ্টা করেছিলেন তা জানিয়েছে USER
  • CURRENT_USER () আপনাকে কীভাবে মাইএসকিউএলে অনুমোদনের অনুমতি দেওয়া হয়েছিল তা জানায়

যদি এই ফাংশনগুলি একই মানগুলির সাথে ফিরে আসে তবে আপনি সংযোগ করছেন এবং প্রত্যাশার সাথে প্রমাণীকরণ করছেন। মানগুলি পৃথক হলে আপনার সংশ্লিষ্ট ব্যবহারকারী তৈরি করতে হতে পারে root@127.0.0.1


3

এই একই সমস্যা ছিল। পরিণত হয়েছে mysqldচলমান বন্ধ হয়ে গেছে (আমি ম্যাক ওএসএক্সে আছি)। আমি এটি আবার চালু করেছি এবং ত্রুটিটি চলে গেছে।

আমি বুঝতে পেরেছি যে mysqldএই লিঙ্কটির কারণে মূলত চলমান ছিল না: http://dev.mysql.com/doc/refman/5.6/en/can-not-connect-to-server.html

প্রথম টিপ লক্ষ্য!


3

যদি আপনি নীচের মত ত্রুটি পান:

django.db.utils.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

তারপরে আপনার mysqld.sock ফাইলের অবস্থানটি সন্ধান করুন এবং এটি "HOST" এ যুক্ত করুন।

আমি লিনাক্সে xampp ব্যবহার করছি যাতে আমার mysqld.sockফাইল অন্য স্থানে থাকে। সুতরাং এটি ' /var/run/mysqld/mysqld.sock' এর জন্য কাজ করছে না

DATABASES = {

    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'asd',
        'USER' : 'root',
        'PASSWORD' : '',
        'HOST' : '/opt/lampp/var/mysql/mysql.sock',
        'PORT' : ''
    }
}

2

আপনার মাইএসকিএল সর্বাধিক সংযোগে পৌঁছেছে না বা মাই সিএনএফ-তে সেটিংসটি ভুল থাকলে বেশিরভাগ ক্ষেত্রে বুটিং লুপে আসে না তা পরীক্ষা করে দেখুন।

পিএস অক্স ব্যবহার করুন পিআইডি পরিবর্তন হচ্ছে কিনা তা পরীক্ষা করতে গ্রেপ মাইএসকিএল করুন।


2

অবদান না রাখার জন্য অনলাইনে প্রায় দীর্ঘ সময় দেখেছি। কমান্ড লাইন থেকে মাইএসকিএল প্রম্পটে টাইপ করার চেষ্টা করার পরে, আমি এই বার্তাটি গ্রহণ করা চালিয়ে যাচ্ছিলাম:

ERROR 2002 (HY000): সকেট '/tmp/mysql.sock' (2) এর মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না

এটি আমার স্থানীয় মাইএসকিএল সার্ভার আর চলমান না থাকার কারণে হয়েছিল। সার্ভারটি পুনরায় চালু করতে, আমি নেভিগেট করেছি

shell> cd /user/local/bin

যেখানে আমার mysql.server অবস্থিত ছিল। এখান থেকে, কেবল টাইপ করুন:

shell> mysql.server start

এটি স্থানীয় মাইএসকিএল সার্ভারটি পুনরায় চালু করবে।

প্রয়োজন থেকে রুট পাসওয়ার্ড পুনরায় সেট করতে পারেন সেখান থেকে ..

mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
->                   WHERE User='root';
mysql> FLUSH PRIVILEGES;

2

প্রথমে সমস্ত প্রক্রিয়া আইডি সন্ধান করে আমার মাইএসকিএল-এর সমস্ত দৃষ্টান্তগুলি বন্ধ করে দিতে হয়েছিল:

পিএস অক্স | গ্রেপ মাইএসকিএল

এবং তারপরে এগুলি হত্যা করে:

মেরুন -9 {পিড}

তারপর:

mysql.server শুরু করুন

আমার জন্য কাজ করেছেন।


1

সকেটটি / tmp এ অবস্থিত। ইউনিক্স সিস্টেমে / টেম্পে মোডগুলি এবং মালিকানার কারণে এটি কিছু সমস্যা তৈরি করতে পারে। তবে, যতক্ষণ আপনি আমাদের বলছেন যে আপনি সাধারণত আপনার মাইএসকিএল সংযোগটি ব্যবহার করতে পারেন, আমার ধারণা এটি আপনার সিস্টেমে কোনও সমস্যা নয়। একটি প্রাথমিক চেকটি আরও নিরপেক্ষ ডিরেক্টরিতে mysql.sock স্থানান্তরিত হওয়া উচিত।

সমস্যাটি "এলোমেলোভাবে" (বা প্রতিবার নয়) ঘটে যাওয়ার বিষয়টি আমাকে ভাবতে দেয় যে এটি কোনও সার্ভার সমস্যা হতে পারে।

  • আপনার / টিএমপিটি কোনও স্ট্যান্ডার্ড ডিস্কে অবস্থিত, না কোনও বিদেশী মাউন্টে (র‌্যামের মতো)?

  • আপনার / টিএমপি খালি?

  • iotopআপনি যখন সমস্যার মুখোমুখি হন তখন কি আপনাকে কিছু ভুল দেখায়?


0

'ডিবি সংযোগগুলি পরিচালনা করুন কথোপকথনে আপনার ডিবি সংযোগটি কনফিগার করুন। সংযোগ পদ্ধতি হিসাবে 'স্ট্যান্ডার্ড (টিসিপি / আইপি)' নির্বাচন করুন।

অধিক বিবরণের জন্য এই পৃষ্ঠা দেখুন http://dev.mysql.com/doc/workbench/en/wb-manage-db-connections.html

এই অন্যান্য পৃষ্ঠা অনুসারে একটি সকেট ফাইল ব্যবহার করা হয় এমনকি আপনি লোকাল হোস্ট নির্দিষ্ট করে দিলেও।

কোনও ইউনিক্স সকেট ফাইল ব্যবহার করা হয় যদি আপনি কোনও হোস্টের নাম নির্দিষ্ট না করেন বা আপনি যদি বিশেষ হোস্টের নাম লোকহোস্ট নির্দিষ্ট করে থাকেন।

এটি এই আদেশগুলি চালিয়ে আপনার সার্ভারে কীভাবে চেক করবেন তাও দেখায়:

যদি কোনও মাইএসকিএলড প্রক্রিয়া চলমান থাকে, আপনি নিম্নলিখিত কমান্ডগুলি ব্যবহার করে এটি পরীক্ষা করতে পারেন। আপনার সেটআপে পোর্ট নম্বর বা ইউনিক্স সকেট ফাইলের নাম আলাদা হতে পারে। হোস্ট_ইপ সার্ভার চলমান মেশিনের আইপি ঠিকানা উপস্থাপন করে।

shell> mysqladmin version 
shell> mysqladmin variables 
shell> mysqladmin -h `hostname` version variables 
shell> mysqladmin -h `hostname` --port=3306 version 
shell> mysqladmin -h host_ip version 
shell> mysqladmin --protocol=SOCKET --socket=/tmp/mysql.sock version

0

উবুন্টু 14.04 এ আপনি এই সমস্যাটি স্লভ করার জন্য এটি করতে পারেন।

zack@zack:~/pycodes/python-scraping/chapter5$ **mysqladmin -p variables|grep socket**
Enter password: 
| socket                                            | ***/var/run/mysqld/mysqld.sock***                                                                                            |
zack@zack:~/pycodes/python-scraping/chapter5$***ln -s  /var/run/mysqld/mysqld.sock /tmp/mysql.sock***
zack@zack:~/pycodes/python-scraping/chapter5$ ll /tmp/mysql.sock 
lrwxrwxrwx 1 zack zack 27 11 29 13:08 /tmp/mysql.sock -> /var/run/mysqld/mysqld.sock=

0

আমার জন্য, আমি নিশ্চিত যে mysqld শুরু হয়েছে এবং কমান্ড লাইন mysql সঠিকভাবে কাজ করতে পারে। তবে httpd সার্ভারটি সমস্যাটি দেখায় (সকেটের মাধ্যমে মাইএসকিএল সংযোগ করতে পারে না)।

আমি mysqld_safe & দিয়ে পরিষেবা শুরু করেছি।

পরিশেষে, আমি যখন সার্ভিস mysqld শুরু করে mysqld পরিষেবাটি চালু করি তখন সেখানে সমস্যাগুলি (সেলিনাক্স অনুমতি ইস্যু) থাকে এবং আমি যখন সেলিনাক্স ইস্যুটি ঠিক করি এবং "পরিষেবা mysqld শুরু" দিয়ে mysqld শুরু করি তখন httpd সংযোগ সমস্যাটি অদৃশ্য হয়ে যায়। তবে আমি যখন mysqld_safe & দিয়ে mysqld শুরু করি তখন mysqld কাজ করা যায়। (মাইএসকিএল ক্লায়েন্ট সঠিকভাবে কাজ করতে পারে)। কিন্তু এখনও সমস্যা আছে যখন httpd এর সাথে সংযুক্ত থাকি।


0

যদি এটি সকেট সম্পর্কিত হয় তবে এই ফাইলটি পড়ুন

/etc/mysql/my.cnf

এবং দেখুন সকেটের মানক অবস্থান কী। এটি একটি লাইনের মতো:

socket = /var/run/mysqld/mysqld.sock

এখন আপনার শেলের জন্য একটি উপকরণ তৈরি করুন:

alias mysql="mysql --socket=/var/run/mysqld/mysqld.sock"

এইভাবে আপনার রুট সুবিধার দরকার নেই।


0

সহজভাবে চালানোর চেষ্টা করুন mysqld

এটিই ছিল ম্যাকের জন্য আমার পক্ষে কাজ করে না। এটি যদি কাজ না করে তবে /usr/local/var/mysql/<your_name>.errবিশদ ত্রুটিযুক্ত লগগুলি দেখতে চেষ্টা করুন ।


0
# shell script ,ignore the first 
$ $(dirname `which mysql`)\/mysql.server start

সহায়ক হতে পারে।


বেশিরভাগ তারকা জবাব হিসাবে রয়েছে 'sudo /usr/local/mysql/support-files/mysql.server start', তবে বিভিন্ন ওএসের 'mysql.server' এর আলাদা পথ থাকতে পারে o সুতরাং আমি একটি কমান্ড লাইন লেখার চেষ্টা করেছি যা হতে পারে অনেক ওএসে দরকারী হতে হবে।
也在 哦

0

হোমএসবিউয়ের মাধ্যমে ইনস্টল করা মাইএসকিউএল 8.0.19 এর জন্য ম্যাকস মোজভে 10.14.6 ব্যবহার করা

  • দৌড়ে sudo find / -name my.cnf
  • ফাইল পাওয়া গেছে /usr/local/etc/my.cnf

একটি সময়ের জন্য পরিশ্রম করে অবশেষে ত্রুটি ফিরে আসল। মাইএসকিউএলের হোমব্রু সংস্করণ আনইনস্টল করে এবং এখান থেকে সরাসরি .dmg ফাইলটি ইনস্টল করে

সুখের পর থেকে সংযোগ।


0

আমার ক্ষেত্রে যা ফাইলটি সম্পাদনা করতে /etc/mysql/mysql.conf.d/mysqld.cnfএবং লাইনটি প্রতিস্থাপন করতে সাহায্য করেছিল :

socket      = /var/run/mysqld/mysqld.sock

সঙ্গে

socket      = /tmp/mysql.sock

তারপরে আমি সার্ভারটি পুনরায় চালু করেছি এবং এটি ঠিকঠাক কাজ করেছে। মজার বিষয় হ'ল যদি আমি লাইনটি আগের মতো করে রাখি এবং পুনরায় চালু করা এখনও কাজ করে ..


0

আমি সম্প্রতি একই ধরণের সমস্যার মুখোমুখি হয়েছিলাম। অনেক উত্তর দিয়ে গেছে। আমি পদক্ষেপ অনুসরণ করে এটি কাজ করে।

  1. সকেটের পাথ পরিবর্তন করতে /etc/my.cnf (যেমন /tmp/mysql.sock দিয়ে বার বার ত্রুটি হচ্ছিলাম) তে সকেটের পাথ পরিবর্তন করুন
  2. সার্ভারটি পুনরায় চালু করতে mysqld_safe চালান কারণ এটি ত্রুটির ক্ষেত্রে পুনরায় চালু করার প্রস্তাবিত উপায়। mysqld_safe রেফারেন্স

0

আমার জন্য, মাইএসকিএল সার্ভার চালু ছিল না। সুতরাং, আমি এর মাধ্যমে মাইএসকিএল সার্ভার শুরু করেছি

mysql.server start

তারপর

mysql_secure_installation

সার্ভারটি সুরক্ষিত করতে এবং এখন আমি মাইএসকিউএল সার্ভারের মাধ্যমে দেখতে পারি

sudo mysql -uroot -p

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