मैं macOS 10.12 पर हूं और परिचित हूं ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'। लेकिन मुझे नहीं लगता कि यह सामान्य अपराधियों में से एक है।
सॉकेट फ़ाइल /tmp/mysql.sockअनुपलब्ध है, लेकिन mysqldचल रही है। वास्तव में दो mysqldप्रक्रियाएं लगती हैं:
$ ps -axx | grep mysqld
63 ?? 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql
109 ?? 0:00.27 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
267 ?? 0:00.20 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/localhost.err --pid-file=/usr/local/mysql/data/Jonathans-iMac.pid
मुझे लगता है कि मैंने कुछ समय पहले mysql के कुछ संस्करणों को इंस्टॉल और अनइंस्टॉल किया था। तो शायद एक पुराना उदाहरण घूम रहा है, रास्ते में मिल रहा है?
मैं एक पुराने स्थापित नहीं मिल सकता है, यद्यपि। और मैं दूसरी दूसरी mysqldप्रक्रिया को भी नहीं मार सकता (मुझे लगता है कि यह एक बुरा है) इसके बिना यह तुरंत शुरू होता है। लगता है mysqld_safeबस इसे पुनरारंभ करता है।
कभी-कभी पूरे सिस्टम को रिबूट करने से जादुई चीजें काम करने लगती हैं। अभी भी दो mysqldप्रक्रियाएं हैं, लेकिन कम से कम /tmp/mysql.sockबनाई गई हैं और मैं अपने डेटाबेस को सामान्य रूप से एक्सेस कर सकता हूं। दूसरी बार, रिबूट करने से मदद नहीं मिलती है।
मैंने एक अतिरिक्त .plistफ़ाइल की तलाश की है जो अतिरिक्त mysqldप्रक्रिया के लिए जिम्मेदार हो सकती है, लेकिन कोई भाग्य नहीं:
$ locate plist | grep mysql
/Library/LaunchDaemons/com.mysql.mysql.plist
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
/private/var/db/receipts/com.mysql.launchd.plist
/private/var/db/receipts/com.mysql.mysql.plist
/private/var/db/receipts/com.mysql.prefpane.plist
यहां /Library/LaunchDaemons/com.mysql.mysql.plist की सामग्रियां दी गई हैं:
<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true />
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
और /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
किसी भी विचार को समस्या के स्रोत को कैसे पहचाना और ठीक किया जाए?