যেহেতু আমি এটিকে সমাধান করার চেষ্টা করার জন্য বেশ কিছুটা সময় ব্যয় করেছি এবং এই ত্রুটিটি খুঁজতে গিয়ে সর্বদা এই পৃষ্ঠায় ফিরে এসেছি, তাই আমি আমার সমাধানটি এখানে রেখে আশা করব যে আমার হারিয়ে যাওয়া সময়টি কেউ সাশ্রয় করবে। যদিও আমার ক্ষেত্রে আমি মাইএসকিএল এর চেয়ে মারিয়্যাডবি ব্যবহার করছি, আপনি এখনও এই সমাধানটি আপনার প্রয়োজনের সাথে মানিয়ে নিতে সক্ষম হতে পারেন।
আমার সমস্যা
একই, তবে আমার সেটআপটি কিছুটা আলাদা (মাইএসকিএলের পরিবর্তে মারিয়াদব):
হোমব্রিউ সহ মারিয়্যাডবি ইনস্টল করা হয়েছে
$ brew install mariadb
শুরু করলেন ডিমন
$ brew services start mariadb
সংযোগ দেওয়ার চেষ্টা করে উপরে বর্ণিত ত্রুটি পেয়েছি
$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
আমার সমাধান
কোন my.cnf
ফাইলগুলি mysql
(এই মন্তব্যে প্রস্তাবিত হিসাবে ) ব্যবহৃত হয় তা সন্ধান করুন :
$ mysql --verbose --help | grep my.cnf
/usr/local/etc/my.cnf ~/.my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
ইউনিক্স সকেট ফাইলটি কোথায় চলছে তা পরীক্ষা করুন (প্রায় এখানে বর্ণিত হিসাবে ):
$ netstat -ln | grep mariadb
.... /usr/local/mariadb/data/mariadb.sock
(আপনি চাইবেন grep mysql
মারিয়াডাবের পরিবর্তে চাইবেন)
সকেট ফাইলটি আপনি খুঁজে পেয়েছেন ~/.my.cnf
(প্রয়োজনীয় হলে ফাইলটি তৈরি করুন) (ধরে নিচ্ছেন-উপর থেকে কম্যান্ড ~/.my.cnf
চালানোর সময় তালিকাভুক্ত করা হয়েছিল mysql --verbose ...
):
[client]
socket = /usr/local/mariadb/data/mariadb.sock
আপনার মারিয়াডব পুনরায় চালু করুন:
$ brew services restart mariadb
এর পরে আমি মাইএসকিএল চালাতে পারি এবং পেয়েছিলাম:
$ mysql -uroot
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
সুতরাং আমি পরিবর্তে সুপারভাইজার সুবিধাগুলি দিয়ে কমান্ডটি চালাই এবং আমার পাসওয়ার্ডটি প্রবেশ করার পরে পেয়েছিলাম:
$ sudo mysql -uroot
MariaDB [(none)]>
মন্তব্য:
আমি যে দলগুলিকে সকেট যুক্ত করতে হবে সেগুলি সম্পর্কে আমি নিশ্চিত নই, প্রথমে আমার কাছে এটি [ক্লায়েন্ট-সার্ভার] ছিল তবে আমি বুঝতে পেরেছিলাম [ক্লায়েন্ট] যথেষ্ট হওয়া উচিত। সুতরাং আমি এটি পরিবর্তন করেছি এবং এটি এখনও কাজ করে।
দৌড়ানোর সময় mariadb_config | grep socket
আমি পাই:
--socket [/tmp/mysql.sock]
যা কিছুটা বিভ্রান্তিকর বলে মনে হচ্ছে যে /usr/local/mariadb/data/mariadb.sock
এটি আসল জায়গা (কমপক্ষে আমার মেশিনে)
আমি আশ্চর্য হয়েছি যেখানে আমি /usr/local/mariadb/data/mariadb.sock
আসলে এটি কনফিগার করতে পারি /tmp/mysql.sock
যাতে আমার সম্পাদনা করার পরিবর্তে আমি ডিফল্ট সেটিংস ব্যবহার করতে পারি .my.cnf
(তবে আমি এখন বুঝতে পেরে খুব ক্লান্ত হয়ে পড়েছি ...)
কিছু সময়ে আমি এগুলি আসার আগে অন্যান্য উত্তরে উল্লিখিত জিনিসগুলিও করেছি did