سؤال

كنت أختبر بعض البرامج لمعرفة ما إذا كان بإمكانها الاتصال بـ 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 إعادة تثبيت! _

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top