سؤال

في نظام التشغيل Mac OS X 10.6، أستطيع الاتصال بـ mysql في php باستخدام

$mysql = mysql_connect(localhost,user,password)

ومع ذلك، إذا استخدمت نفس الشيء في نظام التشغيل Mac OS X 10.9 (Mavericks)، تظهر لي رسالة الخطأ:

Warning: mysql_connect(): No such file or directory

إذا كنت تستخدم $mysql = mysql_connect("127.0.0.1",user,password), ، إنه يعمل بشكل جيد، لكنني أفضل عدم إجراء التغيير في كل مكان.

لقد قرأت في هذا الموقع أن هناك مشكلة في المقبس، ولكن لدي هذه المشكلة بالفعل php.ini.default: pdo_mysql.default_socket=/tmp/mysql.sock

أي فكرة عن كيفية صنع mysql_connect(localhost,user,password) work on 10.9 ?

نصائح أخرى

ما تحتاجه هو تعديل ملف أسماء المضيفين، لكنني مستخدم للكمبيوتر الشخصي، لذا لا يمكنني إرشادك إلى ذلك على نظام التشغيل Mac.على أي حال، إليك ما وجدته وأفترض أنه نفس إصدار نظام التشغيل لديك

الخطوة 1 – افتح Terminal.app

إما عن طريق بدء كتابة محطة على الأضواء ، أو عن طريق الانتقال إلى التطبيقات -> المرافق -> المحطة الطرفية.

الخطوة 2 - افتح ملف المضيفين

افتح المضيفين عن طريق الكتابة على الوحدة الطرفية التي فتحتها للتو:

1 $ sudo nano/private/etc/hosts اكتب كلمة مرور المستخدم عند المطالبة بها.

الخطوة 3 - تحرير ملف المضيفين

يحتوي ملف المضيفين على بعض التعليقات (الخطوط التي تبدأ برمز #) ، وكذلك بعض تعيينات اسم المضيف الافتراضية (على سبيل المثال127.0.0.1 - LocalHost).مصدر: http://decoding.wordpress.com/2009/04/06/how-to-edit-the-hosts-file-in-mac-os-x-leopard/

ما تحتاجه هو كتابة إدخال لـ 127.0.0.1 - مضيف محلي إذا لم يكن موجودًا بالفعل.

إذا اتصلت mysql_connect() مع localhost كوسيطة أولى، تحاول PHP الاتصال باستخدام مقبس مجال UNIX بدلاً من TCP.

من المحتمل أنه يبحث عن اسم مأخذ توصيل خاطئ و/أو أنك تستمع إلى MySQL فقط على TCP.

يجب عليك التحقق من إعدادات mysql الخاصة بك (/etc/mysql ؟ابحث عن المقبس) وphp mysql.default_socket متغير التكوين.(ال pdo_mysql.default_socket يتم استخدام الإشارات التي ذكرتها عند الاتصال باستخدام pdo.)

على سبيل المثال في نظام دبيان الخاص بي:

$ grep socket /etc/mysql/my.cnf 
socket          = /var/run/mysqld/mysqld.sock

(وإلا ستكون حياتك أسهل إذا كنت تستخدم أي نوع من طبقات تجريد قاعدة البيانات، وتخزين تفاصيل الاتصال مرة واحدة فقط.)

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