لم يعد MySQL افتراضيًا إلى /tmp/mysql.sock
سؤال
كنت أختبر بعض البرامج لمعرفة ما إذا كان بإمكانها الاتصال بـ mysql بشكل صحيح عندما لا يستخدم mysql /tmp/mysql.sock.
لقد أوقفت mysql، وقمت بتحرير /etc/my.cnf لإضافة المقبس =/var/lib/mysql/mysql.sock وأعيد تشغيل mysql وكان mysql على المقبس الجديد على ما يرام.
إصلاح البرمجيات الخاصة بي.
الآن أوقفت mysql، وأزلت بيان المقبس من /etc/my.cnf، وأعدت تشغيل mysql وما زال يستخدم /var/lib/mysql/mysql.sock.
لقد قمت بإعادة التشغيل ولا يمكنني استخدامه لاستخدام /tmp/mysql.sock إلا إذا قمت بإضافته إلى /etc/my.cnf ولا أريد القيام بذلك بسبب قيود الاختبار.
لماذا لم يعد ينتقل إلى /tmp/mysql.sock عندما لا توجد معلمة تكوين ولا توجد معلمة سطر أوامر (التي يمكنني رؤيتها من ps aux) أيضًا؟
Linux Centos 6.5 Final MySqld Ver 5.6.17 لـ Linux على i686 (MySQL Community Server (GPL))
ساعدني فى هذا من فضلك.
ثانكس
إدخالات السجل
140624 10:37:36 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2014-06-24 10:37:37 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defa 2014-06-24 10:37:37 1277 [Note] Plugin 'FEDERATED' is disabled. 2014-06-24 10:37:37 1277 [Note] InnoDB: Using mutexes to ref count buffer pool pages 2014-06-24 10:37:37 1277 [Note] InnoDB: The InnoDB memory heap is disabled 2014-06-24 10:37:37 1277 [Note] InnoDB: Mutexes and rw_locks use InnoDB's own implementation 2014-06-24 10:37:37 1277 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-06-24 10:37:37 1277 [Note] InnoDB: Using Linux native AIO 2014-06-24 10:37:37 1277 [Note] InnoDB: Not using CPU crc32 instructions 2014-06-24 10:37:37 1277 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2014-06-24 10:37:37 1277 [Note] InnoDB: Completed initialization of buffer pool 2014-06-24 10:37:37 1277 [Note] InnoDB: Highest supported file format is Barracuda. 2014-06-24 10:37:38 1277 [Note] InnoDB: 128 rollback segment(s) are active. 2014-06-24 10:37:38 1277 [Note] InnoDB: Waiting for purge to start 2014-06-24 10:37:38 1277 [Note] InnoDB: 5.6.17 started; log sequence number 6066054 2014-06-24 10:37:38 1277 [Note] Server hostname (bind-address): '*'; port: 3306 2014-06-24 10:37:38 1277 [Note] IPv6 is available. 2014-06-24 10:37:38 1277 [Note] - '::' resolves to '::'; 2014-06-24 10:37:38 1277 [Note] Server socket created on IP: '::'. 2014-06-24 10:37:38 1277 [Note] Event Scheduler: Loaded 0 events 2014-06-24 10:37:38 1277 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.6.17' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
المحلول
ال وثائق ماي إس كيو إل ينص على أن المسار الافتراضي لـ mysql.sock هو /var/lib/mysql/
على توزيعات RPM.يتم تعيين المسار في وقت الترجمة اعتمادًا على نظام التشغيل المستهدف ويمكن تجاوزه عن طريق التكوين أو سطر الأوامر، لذا فإن السلوك الذي تراه بالنسبة لـ CentOS صحيح.
هذا يعني أنه يجب أن يكون قد تم تعيين مسار مأخذ التوصيل في الأصل عليه /tmp
بواسطة آلية أخرى.هناك عدة أماكن كان من الممكن أن يتم فيها ذلك؛على الأرجح في البرنامج النصي init /etc/init.d/mysql.server
(لضبط socket=/tmp/mysql.sock
في سطر الأوامر - يمكن القيام بذلك في برنامج نصي init حتى لو كان غير مدعوم) أو في ملف خيارات محلي.يرى هذه الصفحة في وثائق ترتيب أسبقية MySQL عند معالجة خيارات بدء التشغيل.الإدخالات المدرجة لاحقًا في الجدول ستحل محل الإدخالات السابقة.
ربما لا يكون من الممكن تتبع تسلسل الأحداث التي أدت إلى تغيير مسار المقبس، ولكن لحسن الحظ يمكنك تغييره عبر ~/.my.cnf
, ، ملف الخيارات الخاص بالمستخدم.
نصائح أخرى
كافية كافية مثل هذا حدث لي الليلة الماضية. أحاول تثبيت MySQL من المصدر كمستخدم غير جذر، كما حصلت على رسائل حول / var / xxx & c. الذهاب إلى الجذر والقيام بسودو تجد. - اسم "my.cnf" ويجب أن تجد ما تبحث عنه في تلك الملفات هذه - إذا كانت موجودة. كما يشير DartonW، قد يكون الأمر شيئا في البرامج النصية الأولية الخاصة بك أيضا - إذا كان الحل الأول لا يعمل، فقم بتجد SUDO. اسم "MySQ *" | GREP -V "/ USR / BIN" - ومعرفة ما هي ملفات init موجودة. يزيل GREP -V "/ USR / BIN" التنفيذيين الخاص بك MySQL (أو ما شابه - غير اختباره) من البحث. nb بسبب الطريقة التي يعمل بها برنامج المنتدى، فإنه لا يظهر ما كتبته بشكل صحيح - للعثور عليك الهروب من الأحرف / (خفض) مع a \ backslash) في أوامر grep.
[تحديث] إذا قمت بتثبيت مكتبات عميل MySQL، فسوف يضعون ملف my.cnf في / etc / mysql مع /var/run/mysqld.sock و /var/run/mysqld.pid الذي قد يلتقط نظامك وبعد تعلمت هذا التكلفة الخاصة بي - _an OS إعادة تثبيت! _