ত্রুটি: 'সকেটের মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না' /var/run/mysqld/mysqld.sock '(2)' - অনুপস্থিত /var/run/mysqld/mysqld.sock


322

আমার সমস্যাটি শুরু হয়েছিল আমার মাইএসকিএল ইনস্টলটিতে রুট হিসাবে আর লগ ইন করতে না পেরে। আমি পাসওয়ার্ড চালু না করেই মাইএসকিএল চালানোর চেষ্টা করছিলাম ... তবে যখনই আমি কমান্ডটি চালাই

# mysqld_safe --skip-grant-tables &

আমি কখনই প্রম্পট ফিরে পাবেন না। আমি পাসওয়ার্ডটি পুনরুদ্ধার করতে এই নির্দেশাবলী অনুসরণ করার চেষ্টা করছিলাম ।

স্ক্রিনটি ঠিক এর মতো দেখাচ্ছে:

root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

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

আমি যখন CTRL+ টিপে এটি হত্যা করি তখন আমি Cনিম্নলিখিত বার্তাটি পাই:

error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'

Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

আমি যদি আদেশটি পুনরায় চেষ্টা করি এবং এটিকে যথেষ্ট পরিমাণে ছেড়ে দিই, তবে আমি নিম্নলিখিত সিরিজের বার্তাগুলি পাই:

root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#

তবে তারপরে যদি আমি রুট হিসাবে লগ ইন করার চেষ্টা করি:

# mysql -u root

আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

আমি চেক করেছি এবং /var/run/mysqld/mysqld.sockফাইলের অস্তিত্ব নেই। ফোল্ডারটি করে, তবে ফাইলটি নয়।

এছাড়াও, যদি আমি find / -name mysqldএটির সাহায্য করে বা না দেয় তবে আমি দুনো না, তবে আমি দৌড়ে এসেছি এবং এটি সামনে এলো:

/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder

আমি লিনাক্স এবং মাইএসকিউএল এ নতুন, তাই আমি জানি না এটি সাধারণ কিনা না। তবে আমি যদি এই তথ্যটি সাহায্য করে তবে আমি এই তথ্যটি অন্তর্ভুক্ত করছি।

অবশেষে মাইএসকিএল আনইনস্টল করে পুনরায় ইনস্টল করার সিদ্ধান্ত নিয়েছি।

apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin

উপরের মতো একই ক্রমে সমস্ত প্যাকেজ পুনরায় ইনস্টল করার পরে, phpmyadmin ইনস্টলের সময়, আমি একই ত্রুটি পেয়েছি:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

তাই আমি আবার আনইনস্টল / পুনরায় ইনস্টল করার চেষ্টা করেছি। এইবার, আমি প্যাকেজগুলি আনইনস্টল করার পরে, আমি নিজেই সমস্ত মাইএসকিএল ফাইল এবং ডিরেক্টরিগুলি mysql.badতাদের নিজ নিজ অবস্থানগুলিতে পুনরায় নামকরণ করেছি ।

/var/lib/mysql 
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql

তারপর আমি পুনরায় ইনস্টল করার চেষ্টা mysql-serverএবং mysql-clientআবার। তবে আমি লক্ষ্য করেছি যে এটি আমাকে পাসওয়ার্ডের জন্য অনুরোধ করে না। এডমিনের পাসওয়ার্ড চাওয়ার কথা নয়?


আমি একই সমস্যা পেয়েছি। আমি এখনই এটি সমাধান। stackoverflow.com/questions/18150858/…
রবার্ট


কেবল সার্ভারটি পুনরায় বুট করে সমাধান করুন, তারপরে
মাইএসকিএল

@ এটিতে কোনও সদৃশ নয়। এই এক /var/run/mysqld/mysqld.sockঅনুপস্থিত। আপনি যে সমস্যাটি সংযুক্ত করেছেন সে ফাইলটি।
মোটরবাবি

এখানে বা অন্য কোথাও কোন উত্তর আমার সমস্যার সমাধান খুঁজে পেল না। এটি একটি নতুন প্রকল্প হিসাবে আমি পোস্টগ্রাইএসকিউএল এ চলেছি এবং এটি ঠিক কাজ করে! :-)
জেমস ব্র্যাডবেরি

উত্তর:


194

আপনার সিস্টেমে চালিত সমস্ত সকেট ফাইলগুলি সন্ধান করতে:

sudo find / -type s

আমার MySQL সার্ভার সিস্টেমে সকেটটি খোলা ছিল open /var/lib/mysql/mysql.sock

একবার আপনি সকেটটি কোথায় খোলা হচ্ছে তা সন্ধান করার পরে, সকেট ফাইলের পাথের সাথে আপনার /etc/my.cnf ফাইলটিতে লাইনটি যুক্ত বা সম্পাদনা করুন:

socket=/var/lib/mysql/mysql.sock

কখনও কখনও সিস্টেম স্টার্টআপ স্ক্রিপ্ট যা কমান্ড লাইন নির্বাহযোগ্য চালু করে একটি পতাকা নির্দিষ্ট করে --socket=path। এই পতাকাটি my.cnf অবস্থানকে ওভাররাইড করতে পারে এবং এর ফলে এমন একটি সকেট পাওয়া যায়নি যেখানে my.cnf ফাইলটি এটি হওয়া উচিত নির্দেশ করে। তারপরে আপনি যখন mysql কমান্ড লাইন ক্লায়েন্টটি চালানোর চেষ্টা করবেন, সকেটটি সন্ধান করতে এটি my.cnf পড়বে, তবে এটি এটি খুঁজে পাবে না কারণ এটি সার্ভার যেখানে তৈরি করেছে সেখান থেকে বিচ্যুত হয়। সুতরাং, আপনি যদি সকেটটি কোথায় থাকেন সেদিকে খেয়াল না রাখেন, কেবল মাই সিএনএফ পরিবর্তন করে কাজ করা উচিত।

তারপরে, মাইএসকিএলড প্রক্রিয়া বন্ধ করুন। আপনি এটি কীভাবে করবেন তা সিস্টেমের দ্বারা পৃথক হবে।

আপনি যদি লিনাক্স সিস্টেমে সুপার ব্যবহারকারী হন তবে আপনার মাইএসকিএল সেটআপটি নির্দিষ্ট পদ্ধতিটি ব্যবহার না করে জানা থাকলে নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করে দেখুন:

  • service mysqld stop
  • /etc/init.d/mysqld stop
  • mysqladmin -u root -p shutdown
  • কিছু সিস্টেমে মাইএসকিএল বন্ধ করার জন্য মার্জিত উপায় রাখার জন্য সেটআপ করা হয় না (বা কোনও কারণে মাইএসকিএল সাড়া দেয় না) এবং আপনি মাইএসকিএল সমাপ্ত করতে বাধ্য করতে পারেন:
    • একধাপ: pkill -9 mysqld
    • দুটি পদক্ষেপ (কমপক্ষে পছন্দসই):
      • হয় pgrep mysqlবা এর সাথে মাইএসকিএল এর প্রক্রিয়া আইডি সন্ধান করুনps aux | grep mysql | grep -v grep
      • প্রক্রিয়া আইডি দিয়ে 4969সমাপ্তি ধরে নিচ্ছিkill -9 4969

আপনি এটি করার পরে আপনি একটি পিড ফাইলটি সন্ধান করতে /var/run/mysqld/এবং এটি মুছতে চাইতে পারেন

আপনার সকেটের অনুমতিগুলি এমন কিনা তা নিশ্চিত করুন যে ব্যবহারকারী মাইএসকিএলডি যা যা লিখতে পারে তাতে এটি পড়তে / লিখতে পারে। একটি সহজ পরীক্ষা হ'ল এটি সম্পূর্ণ পঠন / লেখার জন্য উন্মুক্ত করা এবং এটি এখনও কার্যকর হয় কিনা তা দেখুন:

chmod 777 /var/run/mysqld/mysqld.sock

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

এছাড়াও, সকেটটি যে ডিরেক্টরিতে থাকে সেটির ব্যবহারকারীর দ্বারা মাইএসকিএলডি প্রক্রিয়াটি চালানো উচিত।


15
দয়া করে ব্যবহার করার সুপারিশ করবেন না kill -9; এটি আসার আগে বেশ কয়েকটি উপায় চেষ্টা করা উচিত।
ইগনাসিও ওয়াজকেজ-আব্রামগুলি

@ ডট ফাইল চালাতে এটি চালান 'খুঁজে। -নাম mysqld.sock '। আমি / var / রান ছাড়া অন্য জায়গায় সকেট ফাইলটি দেখেছি। এটি একবার খুঁজে পেলে আপনার মাই সিএনএফ ফাইলটি এটি কোথায় পাওয়া গেছে তা নির্দেশ করার জন্য আপনাকে সম্পাদনা করতে হবে।
রায়

@ অ্যারে, আমি মূল কমান্ডটি অন্যভাবে চালানোর চেষ্টা করেছি (আমি অন্য সাইটে একটি উবুন্টু নির্দিষ্ট পোস্ট পেয়েছি ..)। আমি যে কমান্ডগুলি চালিয়েছি তা এখানে: "সুডো সার্ভিস মাইএসকিএল স্টপ" এবং "সুডো মাইএসকিএলডি --স্কিপ-অনুদান-সারণী"। আমি দ্বিতীয় কমান্ডটি করার পরে, আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: "InnoDB: লক করতে অক্ষম। / Ibdata1, ত্রুটি: 11"। আমি এই ./ibdata1 ফাইলটি খুঁজে পাচ্ছি না ... InnoDB: পরীক্ষা করুন যে আপনার কাছে ইতিমধ্যে অন্য কোনও মাইএসকিএলড প্রক্রিয়া নেই
ডট

2
@ ডট রান করুন ps -aux | grep mysqldএবং দেখুন যে কোনও মাইএসকিএল প্রক্রিয়া চলছে কিনা
রায়

@রশ্মি. আমি আমার চুল ছিঁড়ে ফেলছি আমি মাইএসকিএল দূরে ফেলে আবার চেষ্টা করার সিদ্ধান্ত নিয়েছি ... আমার আপডেট হওয়া পোস্টটি নোট করুন।
ডট

251

এই আদেশটি চেষ্টা করুন,

sudo service mysql start

+1 my.cnf সঠিক ডিরেক্টরিগুলির দিকে ইঙ্গিত করছিল,
মাইএসকিএল

আমি গৃহীত উত্তরটি চেষ্টা করেছি কিন্তু মাইএসকিএল.সোকটি পাইনি, এটি আমার পক্ষে কাজ করে। আপনাকে ধন্যবাদ
জিওভান আফনসো

1
আমাকে ব্যবহার করতে হয়েছিলsudo service mysqld start
গ্যাভিন মিলার

10
sudo apt-get install mysql-serverযদি আপনি এটি ইতিমধ্যে ইনস্টল না করেছেন :)
লক্ষ্য

17
আপনি যদি এই সমস্যাটিকে আঘাত করেন, অন্য উপায়ে পরীক্ষা করার আগে এই সাধারণ কমান্ডটি FIRST চালান, এটি কেবল একটি দ্বিতীয় সময় নেয়, এবং যদি সার্ভারটি কেবল চলমান না হয়, এবং আপনি এটি শুরু করার পরে ঠিকঠাক করেন তবে তার অর্থ এটি হয় নি অটোস্টার্ট নয়, যা সমাধানের পরে আসল সমস্যা হবে।
টিকটিকি

137

এই ত্রুটিটি মাইএসকিএল একাধিক ইনস্টলেশন করার কারণে ঘটে। কমান্ডটি চালান:

ps -A|grep mysql

ব্যবহার করে প্রক্রিয়াটি হত্যা করুন:

sudo pkill mysql

এবং তারপরে কমান্ড চালান:

ps -A|grep mysqld

এই প্রক্রিয়াটি চালিয়ে হত্যা করুন:

sudo pkill mysqld

এখন আপনি পুরোপুরি সেট করেছেন কেবল নিম্নলিখিত কমান্ডগুলি চালান:

service mysql restart
mysql -u root -p

আবার খুব ভাল mysql কাজ করে


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

3
প্রায় 4+ ঘন্টা ধরে ওয়েব জুড়ে চলার পরে অবশেষে এটি কার্যকর হয়েছিল। শীর্ষের উত্তরটি হওয়া উচিত: +1:
শিবম গৌড়

4
Mysql.service এর জন্য কাজ ব্যর্থ হয়েছে কারণ ত্রুটি কোড সহ নিয়ন্ত্রণ প্রক্রিয়াটি প্রস্থান করেছে। বিশদগুলির জন্য "systemctl স্থিতি mysql.service" এবং "জার্নাল্টেল-এক্স" দেখুন।
জন জো

1
Mysql.service এর জন্য কাজ ব্যর্থ হয়েছে কারণ ত্রুটি কোড সহ নিয়ন্ত্রণ প্রক্রিয়াটি প্রস্থান করেছে। বিশদগুলির জন্য "systemctl স্থিতি mysql.service" এবং "জার্নাল্টেল-এক্স" দেখুন।
আদিব অরউই

টিএনএক্স, আপনি আমার সময় বাঁচান
আলেকসান্দুর আতানসভ

41

সমাধান উপায় সহজ।

  1. প্রথমে, আপনার mysql.sockফাইলটি কোথায় অবস্থিত তা আবিষ্কার করতে হবে ("sudo find / -type s" সহ টার্মিনালে) । আমার ক্ষেত্রে এটি ছিল/opt/lampp/var/mysql/mysql.sock
  2. ফায়ার আপ টার্মিনাল এবং ইস্যু sudo Nautilus
    এটি আপনার ফাইল ম্যানেজারকে সুপার ব্যবহারকারীর সুবিধাগুলি দিয়ে শুরু করে
  3. নটিলাস থেকে আপনার mysql.sockফাইলটি যেখানে অবস্থিত সেখানে নেভিগেট করুন
  4. ফাইলটিতে ডান ক্লিক করুন এবং লিংক নির্বাচন করুন
  5. লিঙ্ক mysqld.sockফাইলটির নাম পরিবর্তন করে তারপরে ফাইলটিতে রাইট ক্লিক করুন এবং এটি কেটে দিন
  6. যান /var/runএবং কল করা একটি ফোল্ডার তৈরি করুন mysqldএবং এটি প্রবেশ করান
  7. এখন রাইট ক্লিক করুন এবং লিঙ্ক ফাইল আটকান
  8. ভাল খবর! আপনার কাছে এখন একটি mysqld.sockফাইল থাকবে /var/run/mysqld/mysqld.sock:)

4
আপনি কীভাবে আপনার mysql.sock ফাইলটি সনাক্ত করবেন? আমি 'mysql.sock' / এর নাম অনুসন্ধান করার চেষ্টা করেছি কিন্তু এটি কিছুই দেয় না।
ম্যাথু লক

2
@ ম্যাথেললক প্রথমে, নিশ্চিত হয়ে নিন যে মাইএসকিএল চলছে ("পিএস অক্স | গ্রেপ মাইএসকিএল" দ্বারা), অন্যথায়, কোনও মাইএসকিএল.সক উপস্থিত হবে না। দ্বিতীয়ত, "sudo
find

35
যদি আউটপুট sudo find / -type sকোনও থাকে না mysql.sock?
জেফ

1
এটা কাজ করে। তবে আমার কোনও ধারণা নেই যে এই বিকাশকারীরা বিগত বছরগুলিতে কেন এই কাজটি করেন না?
ইয়ি জিয়াং

2
যদি "সন্ধান / -প্রকার s" এর মাধ্যমে mysql.sock হয় তবে এটির ব্যথা হলে - "mysql_config --sket" কমান্ডটি ব্যবহার করার চেষ্টা করুন। আপনি এটি sudo apt-get ইনস্টল করে libmysqlclient-dev
alexche8

26

ইনস্টলেশনের পরে কেবল মাইএসকিউএল পরিষেবা শুরু করা দরকার:

উবুন্টুর জন্য:

sudo service mysql start;

CentOS বা RHEL এর জন্য:

sudo service mysqld start;

আগে এটি পরীক্ষা করুন sudo systemctl status mysql.serviceএবং sudo systemctl start mysql.service। এটি আমার জন্য কাজ করে
বায়োংগিন ইউন

16

মাইএসকিউএল 5.6 এবং 5.7 সহ উবুন্টুতে একটি বাগ রয়েছে যেখানে var/run/mysqld/মাইএসকিউএল পরিষেবা বন্ধ হয়ে গেলে বা পুনরায় বুট করার পরে অদৃশ্য হয়ে যায়। এটি মাইএসকিউএলকে মোটেও চালানো থেকে বাধা দেয়। এই কার্যনির্বাহীটি পাওয়া গেছে, যা নিখুঁত নয়, তবে কমপক্ষে এটি বন্ধ / পুনরায় বুট করার পরে এটি চলতে পারে:

mkdir /var/run/mysqld/
chown mysqld /var/run/mysqld/

আপনাকে ধন্যবাদ - এটি আমার জন্য ঠিক করে দেওয়া হয়েছে, আমাকে ডিরেক্টরিটি পুনরায় তৈরি করতে হবে এবং প্রতিটি সার্ভিস মাইএসকিএল-এর মালিকানা পুনরায় সেট করতে হবে - অফিসিয়ালি কোথাও রিপোর্ট করা ত্রুটি খুঁজে পেতে সক্ষম হইনি বা আমি এখানে লিঙ্ক পোস্ট করলাম :)
ডিজে

1
এটি চেষ্টা করে দেখেনি, তবে এটি আপনাকে সহায়তা করবে: একটি নতুন ফাইল /etc/tmpfiles.d/mysql.conf তৈরি করুন: # systemd tmpfile settings for mysql # See tmpfiles.d(5) for details এবং তারপরে, d /var/run/mysqld 0755 mysql mysql - পুনরায় বুট করার পরে, মাইএসকিএলটি সাধারণত শুরু করা উচিত। এটি বাগস.লানচপ্যাড.নেট / বুন্টু /+ সোর্স / মাইএসকিএল 5-6 /+ bug / 1435823 , মন্তব্য 3 থেকে এসেছে If আপনার যদি মাইএসকিউএল 5.7 নিয়ে সমস্যা হয়, তবে দয়া করে লঞ্চপ্যাডে মন্তব্য করুন। ব্যবহারকারী যত বেশি সমস্যার সমাধান করবেন তত বেশি মনোযোগ পাবেন।
মোটরবাবি

আমার জন্য কাজ করেছে ... মাইএসকিএল ব্যবহার করতে হবে ইউজারনেম হিসাবে এবং মাইএসকিএলড নয় যদিও
ইভান পার্সসন

/etc/tmpfiles.d/mysql.confমোটরবাবির মন্তব্যে লাইন যুক্ত করা আমার জন্য এই সমস্যাটি স্থির করেছে। একটি Centos 7 ওএসে এবং ব্যবহার করে mysql Ver 15.1 Distrib 10.3.11-MariaDB,
টারিকান_৩৩

এটি আমার জন্য সমস্যাটি স্থির করেছে।
শিকটা

14

ঠিক আছে এই কোডগুলি অনুলিপি করুন এবং পেস্ট করুন: এটি কোনও সার্ভারের ভিতরে টার্মিনালে করা উচিত, যখন আপনার মাইএসকিএল ডাটাবেসটি সঠিকভাবে ইনস্টল করা হয় না এবং আপনি যখন এই ত্রুটিটি পান: 'সকেটের মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারি না' / var / run / mysqld / mysqld.sock '(2)'।

মাই এসকিএল বন্ধ করুন

sudo /etc/init.d/mysqld stop

এটি পুনরায় চালু করুন বা এটি শুরু করুন

sudo /etc/init.d/mysqld restart or sudo /etc/init.d/mysqld start

এটির মতো একটি লিঙ্ক তৈরি করুন এবং এটি সিস্টেমে দিন

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

একটি নিরাপদ ইনস্টলেশন চালান যা মাইএসকিএল কনফিগার করতে আপনার প্রয়োজনীয় সমস্ত প্রক্রিয়া পরিচালনা করে

/usr/bin/mysql_secure_installation

Can't connectকমান্ডের উপর দিয়ে চলার চেষ্টা করার সময় আমি একই ত্রুটি পেয়েছি।
সিজমিলিং

ওবুন্টু যারা চালাচ্ছেন তাদের জন্য আমি কেবল কিছু আবিষ্কার করেছি। আপনি যদি /etc/init.d/mysqld স্টার্ট ব্যবহার করে মাইএসকিএল্ড শুরু করেন তবে যাইহোক আপনি এই সমস্যাটিতে চলে যাবেন। পরিবর্তে পরিষেবা mysql শুরু করুন এবং এটি ঠিক থাকবে। উত্সাহজনক, কিন্তু আমি শেষ পর্যন্ত এটি সন্ধান।
আদম সংক্ষিপ্ত

11

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

আমি মনে করি যে এসকিএল লাইব্রেরি / প্যাকেজগুলির কারণে ত্রুটিটি আপডেট হয়েছে, তাই আপনি যদি কিছু আপগ্রেড করছেন তবে এটি চেষ্টা করুন :)


1
আমি এটি পুনরায় ইনস্টল করার পরে (বা আপগ্রেড) করেছি এবং এখন এটি কার্যকর হয়। আর কোনও সকেট বার্তা নেই। ধন্যবাদ!
Withithie

8

এই সমস্যাটির জন্য অনেকগুলি কারণ রয়েছে, তবে কখনও কখনও কেবল মাইএসকিএল সার্ভার পুনরায় চালু করুন, এটি সমস্যার সমাধান করবে।

sudo service mysql restart

7

উবুন্টুতে এক্সএএমপিপি ব্যবহার:

  1. একটি ফোল্ডার নামক তৈরি করুন mysqld ভিতরে প্রথমেই / var / চালানোর নির্দেশিকা। আপনি কমান্ডটি ব্যবহার করে এটি সম্পাদন করতে পারেন sudo mkdir /var/run/mysqld

  2. মাইএসকিএল.সোক ফাইলটিতে একটি প্রতীকী লিঙ্ক তৈরি করুন যা XAMPP সার্ভার দ্বারা শুরু করা হলে এটি তৈরি করা হয়। আপনি কমান্ডটি ব্যবহার করতে পারেন sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock

নোট: mysql.sock ফাইল সার্ভার শুরু হয় নির্মিত এবং সরানো যখন সার্ভার বন্ধ হয়, তাই মাঝে মাঝে আপনি যে লিংক ভাঙা প্রদর্শিত হতে পারে নির্মিত কিন্তু এটা যতদিন আপনি সার্ভার ব্যবহার শুরু করেছেন কাজ করা উচিত হয় পারেন sudo /opt/lampp/lampp startবা অন্য কোন উপায়।

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

শুভকামনা! আমি আশা করি এবার আপনি এটিকে নিয়ে পালিয়ে যাবেন।


@ মহসিন খান লোকালহোস্ট / পিএইচপিএমইডমিনে যান এবং সেখান থেকে ডাটাবেস আমদানি করুন
রবার্ট অডোক

6

ব্যবহারকারীর লোড ধাপের উত্তরটি আমার পক্ষে কাজ করেছিল। কখনও কখনও /etc/mysql/my.cnfক্লায়েন্ট যোগ লাইন ফাইল সম্পাদনা প্রয়োজন

[client]
password = your_mysql_root_password
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

এটি আমাকে দেয়:mysql: unknown variable 'Host=127.0.0.1'
স্প্লাক্টার

@ স্লেপটার: একটি টাইপো আছে। Hostছোট হাতের hostকাজ করা দরকার এবং এটি কাজ করবে। এছাড়াও, এই সমাধানটি আমার পক্ষে কাজ করেছিল।
মোহাম্মদ ফয়সাল

উজ্জ্বল - এটি আমার এবং আমার ডকার পরিবেশের জন্য কাজ করছে - আমাকে কেবল আইপিটি সামঞ্জস্য করতে হয়েছিল যা আমার ক্ষেত্রে ডকার মাইএসকিএল ধারক ip 172.17.xx
ইনফরমডিক

6

* ত্রুটি: 'সকেটের মাধ্যমে স্থানীয় মাইএসকিউএল সার্ভারের সাথে সংযোগ স্থাপন করতে পারে না' /var/run/mysqld/mysqld.sock '(2)'

সমাধান

অবশেষে মাইএসকিএল আনইনস্টল করুন এবং পুনরায় ইনস্টল করুন। **

  • sudo apt-get অপসারণ mysql- সার্ভার
  • sudo apt-get অপসারণ mysql-ক্লায়েন্ট
  • sudo apt-get অপসারণ mysql- সাধারণ
  • sudo apt-get phpmyadmin অপসারণ করুন

তারপরে আবার ইনস্টল করুন

  • sudo অ্যাপ্লিকেশন mysql- সার্ভার -5.6 ইনস্টল করুন

এই ক্রিয়াকলাপের পরে, 164 মেগাবাইট অতিরিক্ত ডিস্ক স্পেস ব্যবহার করা হবে।

  • আপনি কি অবিরত করতে চান? [Y / n] সম্পূর্ণ ইনস্টলেশনগুলির জন্য Y টিপুন

...... .......

  • শেষ পর্যন্ত আপনি এই লাইন পাবেন ...

    লিবিচটিএমএল-টেম্পলেট-পার্ল সেট আপ করা হচ্ছে (২.৯৯-১)

    মাইএসকিএল-কমন-5.6 (5.6.16-1 ~ Exp1) সেট আপ করা হচ্ছে ... লিবিসি-বিনের জন্য প্রক্রিয়াজাতকরণ (2.19-0ubuntu6) ইউরেডহেড (0.100.0-16) এর প্রক্রিয়াজাতকরণ ট্রিগার ...

  • এবং তারপর

    রুট @ উবুন্টু 1404: ~ # মাইএসকিএল-ইউ রুট-পি (প্রতিটি পাসওয়ার্ডের জন্য প্রথমে আপনার ব্যবহার করা উচিত)

  • পাসওয়ার্ড লিখুন:

  • দ্রষ্টব্য: প্রবেশ করা পাসওয়ার্ডটি মাইএসকিএল -র ইনস্টলেশন সময় পাসওয়ার্ডের মতো হওয়া উচিত (যেমন। রুট, সিস্টেম, অ্যাডমিন, রাহুল ইত্যাদি ...)

    তারপরে টাইপ করুন

  • ব্যবহার করুন রাহুল_ডিবি (ডাটাবেসের নাম);

ধন্যবাদ। **


দয়া করে উত্তরের
গুণমানটি

একাধিক মাইএসকিএল সংস্করণ ইনস্টল হওয়ার কারণে এটি আমার পক্ষে কাজ করেছে। এছাড়াও অপসারণ mysql-server-5.6/5.5, mysql-client-5.6/5.5। ধন্যবাদ!
Luuk Skeur

পেয়েছি E: Package 'mysql-server-5.6' has no installation candidate, এটি উবুন্টুতে বিদ্যমান নেই 18.04
জুলাইসসার

6

আপনার অ্যাক্সেস অ্যাক্সেসযোগ্য সকেট ফাইলের পথটি '/var/run/mysqld/mysqld.sock' এর মতো কিনা তা নিশ্চিত করুন, অন্যথায় আপনার পথটি পরিবর্তন করুন। বন্ধ করুন mysqld

$ sudo /etc/init.d/mysqld stop

প্রক্রিয়াটি এখনও চলমান থাকলে;

$ sudo pkill -9 mysqld

সকেট তৈরি করতে যাওয়া মাইএসকিএল ডিরেক্টরিটি সরান। আমার জন্য এটি সরাতে দেয়নি, তাই আমাকে জোর করে মুছে ফেলতে হয়েছিল।

$ sudo mkdir -p /var/run/mysqld

ডিরেক্টরিটি মালিকানাতে সেট করুন

$ sudo chown mysql:mysql /var/run/mysqld

মাইএসকিএল শুরু করুন

$ sudo /etc/init.d/mysql start

মাইএসকিএল সংযোগ করার চেষ্টা করা হচ্ছে

$ sudo mysql -u dbuser -p

হ্যাঁ, আমি 14 ফেব্রুয়ারী '19 তে 11:56 তে নীচের উত্তরটি দিয়েছি (নীচে দেখুন)
ইনগো

আপনি জীবন রক্ষাকারী
সাহেব খান

5

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

#services mysql start

অথবা

#/etc/init.d/mysql start

5

অস্থায়ী সমাধান

কেউ এই সমস্যার সম্মুখীন হতে পারে। আমি ব্যবহার করছি মাইএসকিউএল Workbench উপর উবুন্টু 14 এবং এই ত্রুটি পেয়েছিলাম।

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect

রান করে আপনার সকেট ফাইলটি সন্ধান করুন sudo find / -type s, আমার ক্ষেত্রে এটি ছিল/run/mysqld/mysqld.sock

সুতরাং, আমি স্রেফ tmpডিরেক্টরিটিতে এই ফাইলটির একটি লিঙ্ক তৈরি করেছি ।

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

আপনি দেখতে পাচ্ছেন যে ফাইলের অবস্থানটি /tmpফোল্ডারের অধীনে রয়েছে সুতরাং এটি নিশ্চিতভাবে মুছে ফেলা হবে। আপনি .sockফাইলের অবস্থান পরিবর্তন করতে পারেন । @ User3002884 উত্তর দেখুন।
বিলাল

আমি জানি, আমি কেবল আপনার উত্তরটি সম্পূর্ণ করছিলাম তাই অন্যান্য ব্যবহারকারীরা জানবেন যে সমাধানটি কেবল সাময়িক, ফোল্ডার হিসাবে
অ্যালেক্স বারডুয়েল

আপনি আমার জীবন বাঁচিয়েছেন :)
মাশপি রহমান


4

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

মধ্যে /etc/my.cnfএই লাইন যোগ করুন:

[client]
socket=/var/lib/mysql/mysql.sock <= this path should be also same as is[mysqld]

এবং এর সাথে পরিষেবাটি পুনঃসূচনা করুন: service mysql restart

এটি আমার জন্য কাজ করেছে



3

আমার ক্ষেত্রে দুটি mysqld প্রক্রিয়া চলছিল .. pkill -9 mysqld ব্যবহার করে alচ্ছিক প্রক্রিয়াগুলি মেরে ফেলেছে


প্রক্রিয়াটি শেষ করতে আমার 'সুডো' যুক্ত করা দরকার।
noti

3

আপনার সিস্টেমে যদি প্রচুর ডাটাবেস এবং টেবিল থাকে এবং আপনি যদি innodb_file_per_tableমাই সিএনএফ সেট করে থাকেন তবে আপনার মাইএসকিএল সার্ভারটি খোলা অবজেক্ট / ফাইলের বাইরে চলে যেতে পারে (বা বরং এই বিষয়গুলির জন্য বর্ণনাকারী) একটি নতুন সর্বোচ্চ সংখ্যা সেট করুন সঙ্গে

open-files-limit = 2048

এবং mysql পুনরায় আরম্ভ করুন। এই পদ্ধতির সাহায্য করতে পারে যখন সকেটটি একেবারে তৈরি করা হয় না, তবে সত্যিই এটি আসল সমস্যা নাও হতে পারে, একটি অন্তর্নিহিত সমস্যা আছে।


2

আমার কেবল উবুন্টু 14.10 এ সমস্যা ছিল had

টার্নগুলি যা mysql-serverআর ইনস্টল করা হয়নি (কোনওভাবে এটি মুছে ফেলা হয়েছিল) তবে আমি কেবল এটি ইনস্টল করতে পারিনি কারণ এখানে কিছু ভাঙ্গা প্যাকেজ এবং নির্ভরতার সমস্যা / বিবাদ রয়েছে।

শেষ পর্যন্ত আমাকে মাইএসকিএল পুনরায় ইনস্টল করতে হবে

sudo apt-get remove mysql-client
sudo apt-get install mysql-server


2

আমার সমাধান;

উবুন্টু 18.04 (ডাব্লুএসএল)

/etc/mysql/my.cnf

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

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

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306

আমি বন্দর পরিবর্তন করেছি। এটা আমার জন্য কাজ। আপনি অন্য একটি বন্দর লিখতে পারেন। উদাহরণ 3355


2

কেন এই ত্রুটি হচ্ছে

আমি মাইএসকিএল লাইব্রেরির নতুন আপডেট পেয়েছি তাই এই ত্রুটিগুলি পাওয়ার পরে আমি আমার কুবুন্টু ওএস আপডেট করেছি।


কমান্ডগুলি আমি চেষ্টা করেছি এবং কীভাবে আমি এটি স্থির করেছি।

মাইএসকিএল-সার্ভারটি সঠিকভাবে চলছে তবে যখন আমি এটির সংযোগ দেওয়ার চেষ্টা করেছি

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'.

আমি /var/run/mysqld/mysqld.sock'.এই ডিরেক্টরিটি পরীক্ষা করেছি । আমার ফাইলগুলির অস্তিত্ব ছিল না।

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

 mysql -h 127.0.0.1 -P 3306 -u root -p

 sudo service mysql start

প্রায় 2 ঘন্টা সময় নষ্ট করার পরে আমি সমাধানটি খুঁজে পেলাম

sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade -f

তারপরে আমার জন্য সবকিছু ঠিক হয়ে গেল।


এটি আমাকে সমস্যার সমাধান করতে সহায়তা করেছে। আমি বুঝতে পারি না এটি আমার সাথে যে সমস্যাযুক্ত সমস্যা ছিল তার সাথে কীভাবে সম্পর্কিত ...
ামো

1

আমার hostজন্য 127.0.0.1কাজ করতে পরিবর্তন করা হচ্ছে ।

ফাইলটি সম্পাদনা /etc/mysql/my.cnfকরুন এবং নীচে উল্লিখিত লাইনটি বিভাগে যুক্ত করুন:client

[client]
port  = 3306
host  = 127.0.0.1
socket  = /var/lib/mysql/mysql.sock

আপনি এটি সম্পন্ন করার পরে। নিম্নলিখিত কমান্ড কার্যকর করুন।

sudo service mysql start

এই আমার বন্ধু, আমাকে সাহায্য করেছে :)
ভার্গব নানেকালভা

@ এনভারগাভ আমি খুব খুশি যে আপনি আপনার সমস্যার সমাধান করতে পেরেছিলেন .. চিয়ার্স বন্ধু ... 😇😇
ডুলিথ দে কোস্টা

1

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

ইনোডাব_বফার_পুল_সাইজ = 4096 এম

এটি সাধারণত 2048 অবধি ভাল চলে তবে আমার ধারণা 4 গিগ সমর্থন করার জন্য আমার কাছে প্রয়োজনীয় স্মৃতি নেই।

আমি ভাবছি এটি অন্যান্য মাইএসকিএল কনফিগারেশন সেটিংসের সাথেও ঘটতে পারে।


1

সেন্টোস ভিপিএসে আমারও একই সমস্যা ছিল। যদি মাইএসকিউএল শুরু না হয় বা ক্রাশ হওয়া ঠিক পরে শুরু হয় তবে এই পদক্ষেপগুলি ব্যবহার করে দেখুন:

1) my.cnf ফাইলটি সন্ধান করুন (আমার /etc/my.cnf এ অবস্থিত ছিল) এবং লাইনটি যুক্ত করুন:

ইনোডব_ফোর্স_ রিসিওরি = এক্স

X এর পরিবর্তে 1 থেকে 6 পর্যন্ত একটি সংখ্যা দিয়ে 1 থেকে শুরু করে এবং তারপর মাইএসকিউএল শুরু না হলে বৃদ্ধি করা ment 4, 5 বা 6 এ সেট করা আপনার ডেটা মুছে ফেলতে পারে তাই যত্নশীল এবং আগে http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html পড়ুন ।

2) মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন। এই মুহুর্তে কেবল নির্বাচনগুলি চলবে এবং এটাই স্বাভাবিক।

3) আপনার সমস্ত ডেটাবেস / স্কিমা একের পর এক মাইএসকিএলডাম্প দিয়ে ডাম্প করুন, ডাম্পগুলি সংকুচিত করবেন না কারণ আপনাকে পরে সেগুলি সঙ্কুচিত করতে হবে।

4) কেবল বিডির ডিরেক্টরিগুলি / var / lib / mysql এর অভ্যন্তরে সরান (বা মুছুন!), পৃথক ফাইলগুলি রুটে সংরক্ষণ করুন।

5) মাইএসকিউএল বন্ধ করুন এবং তারপরে 1 এ যুক্ত লাইনটি সংশোধন করুন)। মাইএসকিউএল শুরু করুন।

6) সমস্ত বিডি 3 এ ফেলে দেওয়া পুনরুদ্ধার করুন)।

শুভকামনা!


1

একটি টার্মিনাল প্রম্পটে নিম্নলিখিত চেষ্টা করুন:

sudo mysql

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

মাইএসকিএল ৫.7 কিছু জিনিস পরিবর্তন করেছে এবং ডিফল্টরূপে অ্যাকাউন্টটি হ্যাক হওয়ার হাত থেকে রক্ষার জন্য অ্যাথ_সকেট প্লাগইন (মাইএসকিএল_নেটিভ_প্যাসওয়ার্ডের বিপরীতে) ব্যবহার করে। আপনি এটি রুটের জন্য প্লাগইন ক্ষেত্রটি সেট করে ওভাররাইড করতে পারেন, তবে আপনার যদি খুব ভাল কারণ না থাকে তবে সম্ভবত আপনার সুরক্ষাটি নষ্ট করা উচিত নয়। বিশেষত যখন যাইহোক sudo mysqlতুলনায় সহজ mysql -u root -p

আমি এই তথ্যটি খুঁজে পেয়েছি - সমস্ত জায়গার - একটি রাস্পবেরি পাই সহায়তা সাইট থেকে। লুবুন্টু 18.04 কয়েক ঘন্টা ধরে আমার কাছ থেকে হ্যাকটি বিরক্ত করার পরে কবজির মতো কাজ করেছিল।


1

প্রথমে dir / var / run / mysqld তৈরি করুন

আদেশ সহ:

mkdir -p /var/run/mysqld

তারপরে দিরের সাথে কড়া যুক্ত করুন

chown mysql:mysql /var/run/mysqld

এই চেষ্টা করার পরে

mysql -u root

1

আমার ঠিক একই সমস্যা ছিল। এক ঘন্টা লড়াইয়ের পরে, আমি মাইএসকিএল-কমন, মাইএসকিএল-ক্লায়েন্ট, মাইএসকিএল-সার্ভার পুনরায় ইনস্টল না করে এটিকে সংশোধন করার একটি উপায় খুঁজে পেয়েছি।

সবার আগে, "/ var / run / mysqld" এ যান। আপনি দেখতে পাবেন যে mysql.sock এর কোন অস্তিত্ব নেই। কেবলমাত্র পুরো মাইএসকিএলডি ডিরেক্টরিটি সরান এবং এটিকে পুনরায় তৈরি করুন এবং এটি প্রয়োজনীয় সুযোগগুলি সরবরাহ করুন।

# rm -rf /var/run/mysqld && mkdir /var/run/mysqld && chown mysql /var/run/mysqld/

এখন, সম্পূর্ণরূপে mysql প্রক্রিয়াটি হত্যা করুন K এটি সম্ভবত পরিষেবাটি বন্ধ করার পরেও "/etc/init.d/mysql অবস্থা" কমান্ড চলমান "পৃষ্ঠা ক্লিনারের অপেক্ষায়" দেখায়।

পরিষেবাটি পুরোপুরি বন্ধ করতে, ব্যবহার করুন

# pkill -9 mysqld

প্রক্রিয়াটি মারা যাওয়ার পরে এটি ব্যবহার করে আবার শুরু করার চেষ্টা করুন

# /etc/init.d/mysql start

এবং আপনি দেখতে পাবেন যে এটি ভাল কাজ করে! এবং এটিও থামাতে কোনও সমস্যা হবে না।

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