أحاول الاتصال بخادم MySql من خلال Unix Socket بدلاً من TCP لتعظيم الاتصال وتقليل حمل المعالجة.
يعمل تطبيق My Asp Net Core في Docker Swarm وأنا أقوم بتشغيل Percona docker
أشارك mysqld.sock باستخدام مشاركة الحجم وعلى حاوية Asp Net الأساسية ، يمكنني تسجيل الدخول إلى وحدة التحكم وإجراء الاتصال بالخادم باستخدام mysql client
/var/run/mysqld/mysqld.sock
ومع ذلك ، عندما يحاول تطبيق Asp Net Core الاتصال بالخادم ، فإنه يتحول من المضيف المحلي إلى 127.0.0.1:3306 على الرغم من عدم تعيين منفذ و SslMode=none
أي مساعدة كثيرا
Exception message:
Stack trace:
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
---> System.AggregateException: One or more errors occurred. (Connection refused 127.0.0.1:3306)
---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (111): Connection refused 127.0.0.1:3306
إصدار MySQL: 5.7
نظام التشغيل: ubuntu: الأحدث
Pomelo.EntityFrameworkCore.MySQL الإصدار: 3.1.1
إصدار Microsoft.AspNetCore.App: 3.1.2
هذا السؤال موجه إلى MySqlConnector ، المكتبة الأساسية المستخدمة من قبل
لاستخدام مقابس Unix ، تحتاج إلى تعيين الاتصال protocol
إلى Unix
. يصبح الخيار Server
هو المسار لملف المقبس. يوضح ما يلي سلسلة اتصال عينة:
server=/var/run/mysqld/mysqld.sock;protocol=unix;database=mydatabase
راجع خيارات سلسلة اتصال MySQL .NET لمزيد من التفاصيل.
أنت رائع حقًا Lauxjpn ، أتمنى حقًا أن يكون هذا في مستند Pomelo وعينات لحفظها كثيرًا ، لم أكن أعلم أن Pomelo يستخدم MySqlConnector أسفل lauxjpn
أتمنى حقًا أن يكون هذا في مستند Pomelo وعينات لتوفير الكثير من المرات
لسوء الحظ ، كل من الوثائق والعينات غير متوفرة في الوقت الحالي. نحتاج حقًا إلى تحسين ذلك قبل إصدار .NET 5.
لقد قدمت الكثير من نماذج التعليمات البرمجية داخل المشكلات ، ولكن يجب علينا دمجها في عينات متعددة وجعلها جزءًا من الريبو.
لم أكن أعلم أن Pomelo يستخدم MySqlConnector تحته
تم ذكره في صفحة الريبو الرئيسية الخاصة بنا ، ولكن هناك الكثير من الأشياء هناك ومن السهل التغاضي عنها.
أتمنى حقًا أن يكون هذا في مستند Pomelo وعينات لتوفير الكثير من المرات
@ mason-chase هذا مشروع مجتمعي ، لذا إذا كنت ترغب في المساهمة بعلاقاتك العامة فسيكون موضع ترحيب.
التعليق الأكثر فائدة
هذا السؤال موجه إلى MySqlConnector ، المكتبة الأساسية المستخدمة من قبل
لاستخدام مقابس Unix ، تحتاج إلى تعيين الاتصال
protocol
إلىUnix
. يصبح الخيارServer
هو المسار لملف المقبس. يوضح ما يلي سلسلة اتصال عينة:راجع خيارات سلسلة اتصال MySQL .NET لمزيد من التفاصيل.