Skip to main content
Glama

mcp-dbutils

MIT License
81
  • Linux
  • Apple
configuration.md12.4 kB
<div dir="rtl"> # دليل التكوين *[English](../en/configuration.md) | [中文](../zh/configuration.md) | [Français](../fr/configuration.md) | [Español](../es/configuration.md) | العربية | [Русский](../ru/configuration.md)* يقدم هذا المستند أمثلة تكوين متنوعة لـ MCP Database Utilities، من التكوينات الأساسية إلى السيناريوهات المتقدمة، مما يساعدك على تكوين وتحسين اتصالات قاعدة البيانات الخاصة بك بشكل صحيح. ## التكوين الأساسي ### التكوين الأساسي لـ SQLite SQLite هي قاعدة بيانات خفيفة قائمة على الملفات مع تكوين بسيط جدًا: ```yaml connections: my-sqlite: type: sqlite path: /path/to/database.db # اختياري: كلمة مرور تشفير قاعدة البيانات password: optional_encryption_password ``` ### التكوين الأساسي لـ PostgreSQL تكوين اتصال PostgreSQL القياسي: ```yaml connections: my-postgres: type: postgres host: localhost port: 5432 dbname: my_database user: postgres_user password: postgres_password ``` ### التكوين الأساسي لـ MySQL تكوين اتصال MySQL القياسي: ```yaml connections: my-mysql: type: mysql host: localhost port: 3306 database: my_database user: mysql_user password: mysql_password charset: utf8mb4 # موصى به لدعم Unicode الكامل ``` ## تكوين قواعد بيانات متعددة يمكنك تحديد اتصالات قاعدة بيانات متعددة في نفس ملف التكوين: ```yaml connections: # قاعدة بيانات SQLite للتطوير dev-db: type: sqlite path: /path/to/dev.db # قاعدة بيانات PostgreSQL للاختبار test-db: type: postgres host: test-postgres.example.com port: 5432 dbname: test_db user: test_user password: test_pass # قاعدة بيانات MySQL للإنتاج prod-db: type: mysql host: prod-mysql.example.com port: 3306 database: prod_db user: prod_user password: prod_pass charset: utf8mb4 ``` ## التكوين المتقدم ### تكوين نمط URL بالإضافة إلى استخدام خصائص التكوين القياسية، يمكنك أيضًا استخدام عناوين URL لقاعدة البيانات للتكوين الجزئي. أفضل ممارسة هي وضع بنية اتصال قاعدة البيانات في عنوان URL، ولكن الاحتفاظ بالمعلومات الحساسة والمعلمات المحددة منفصلة: **تكوين URL لـ PostgreSQL (النهج الموصى به)**: ```yaml connections: # استخدام URL لـ PostgreSQL (أفضل ممارسة) postgres-url: type: postgres url: postgresql://host:5432/dbname user: postgres_user password: postgres_password # معلمات أخرى مكونة هنا ``` **تكوين URL لـ MySQL (النهج الموصى به)**: ```yaml connections: # استخدام URL لـ MySQL (أفضل ممارسة) mysql-url: type: mysql url: mysql://host:3306/dbname user: mysql_user password: mysql_password charset: utf8mb4 ``` **نمط تكوين URL القديم** (غير موصى به للإنتاج): على الرغم من أن النهج التالي يعمل، إلا أنه غير موصى به لبيئات الإنتاج بسبب خطر أخطاء تحليل الأحرف الخاصة: ```yaml connections: legacy-url: type: postgres url: postgresql://user:password@host:5432/dbname?param1=value1 # ملاحظة: لا يُنصح بتضمين بيانات الاعتماد في عنوان URL ``` **متى تستخدم URL مقابل التكوين القياسي**: - تكوين URL مناسب لـ: - عندما يكون لديك بالفعل سلسلة اتصال قاعدة بيانات - تحتاج إلى تضمين معلمات اتصال محددة في عنوان URL - الترحيل من أنظمة أخرى ذات سلاسل اتصال - التكوين القياسي مناسب لـ: - بنية تكوين أكثر وضوحًا - الحاجة إلى إدارة كل خاصية تكوين بشكل منفصل - أسهل لتعديل المعلمات الفردية دون التأثير على الاتصال العام - أمان وقابلية للصيانة أفضل في جميع الحالات، يجب تجنب تضمين المعلومات الحساسة (مثل أسماء المستخدمين وكلمات المرور) في عنوان URL وبدلاً من ذلك توفيرها بشكل منفصل في معلمات التكوين. ### اتصالات SSL/TLS الآمنة #### تكوين SSL لـ PostgreSQL **استخدام معلمات URL لـ SSL**: ```yaml connections: pg-ssl-url: type: postgres url: postgresql://postgres.example.com:5432/secure_db?sslmode=verify-full&sslcert=/path/to/cert.pem&sslkey=/path/to/key.pem&sslrootcert=/path/to/root.crt user: secure_user password: secure_pass ``` **استخدام قسم تكوين SSL مخصص**: ```yaml connections: pg-ssl-full: type: postgres host: secure-postgres.example.com port: 5432 dbname: secure_db user: secure_user password: secure_pass ssl: mode: verify-full # وضع التحقق الأكثر أمانًا cert: /path/to/client-cert.pem # شهادة العميل key: /path/to/client-key.pem # مفتاح العميل الخاص root: /path/to/root.crt # شهادة CA ``` **شرح وضع SSL لـ PostgreSQL**: - `disable`: لا يتم استخدام SSL على الإطلاق (غير موصى به للإنتاج) - `require`: استخدام SSL ولكن عدم التحقق من الشهادة (التشفير فقط، بدون مصادقة) - `verify-ca`: التحقق من أن شهادة الخادم موقعة من قبل CA موثوق بها - `verify-full`: التحقق من شهادة الخادم وتطابق اسم المضيف (الخيار الأكثر أمانًا) #### تكوين SSL لـ MySQL **استخدام معلمات URL لـ SSL**: ```yaml connections: mysql-ssl-url: type: mysql url: mysql://mysql.example.com:3306/secure_db?ssl-mode=verify_identity&ssl-ca=/path/to/ca.pem&ssl-cert=/path/to/client-cert.pem&ssl-key=/path/to/client-key.pem user: secure_user password: secure_pass ``` **استخدام قسم تكوين SSL مخصص**: ```yaml connections: mysql-ssl-full: type: mysql host: secure-mysql.example.com port: 3306 database: secure_db user: secure_user password: secure_pass charset: utf8mb4 ssl: mode: verify_identity # وضع التحقق الأكثر أمانًا ca: /path/to/ca.pem # شهادة CA cert: /path/to/client-cert.pem # شهادة العميل key: /path/to/client-key.pem # مفتاح العميل الخاص ``` **شرح وضع SSL لـ MySQL**: - `disabled`: لا يتم استخدام SSL (غير موصى به للإنتاج) - `preferred`: استخدام SSL إذا كان متاحًا، وإلا استخدام اتصال غير مشفر - `required`: يجب استخدام SSL، ولكن عدم التحقق من شهادة الخادم - `verify_ca`: التحقق من أن شهادة الخادم موقعة من قبل CA موثوق بها - `verify_identity`: التحقق من شهادة الخادم وتطابق اسم المضيف (الخيار الأكثر أمانًا) ### التكوين المتقدم لـ SQLite **استخدام معلمات URI**: ```yaml connections: sqlite-advanced: type: sqlite path: /path/to/db.sqlite?mode=ro&cache=shared&immutable=1 ``` **معلمات URI الشائعة لـ SQLite**: - `mode=ro`: وضع القراءة فقط (خيار آمن) - `cache=shared`: وضع ذاكرة التخزين المؤقت المشتركة، يحسن أداء متعدد المؤشرات - `immutable=1`: تمييز قاعدة البيانات على أنها غير قابلة للتغيير، يحسن الأداء - `nolock=1`: تعطيل قفل الملف (استخدم فقط عندما تكون متأكدًا من عدم وجود اتصالات أخرى) ## تكوين خاص لبيئة Docker عند التشغيل في حاوية Docker، يتطلب الاتصال بقواعد البيانات على المضيف تكوينًا خاصًا: ### الاتصال بـ PostgreSQL/MySQL على المضيف **على macOS/Windows**: استخدم اسم المضيف الخاص `host.docker.internal` للوصول إلى مضيف Docker: ```yaml connections: docker-postgres: type: postgres host: host.docker.internal # اسم DNS خاص يشير إلى مضيف Docker port: 5432 dbname: my_database user: postgres_user password: postgres_password ``` **على Linux**: استخدم IP جسر Docker أو استخدم وضع شبكة المضيف: ```yaml connections: docker-mysql: type: mysql host: 172.17.0.1 # IP جسر Docker الافتراضي، يشير إلى المضيف port: 3306 database: my_database user: mysql_user password: mysql_password ``` أو استخدم `--network="host"` عند بدء حاوية Docker، ثم استخدم `localhost` كاسم المضيف. ### تعيين SQLite بالنسبة لـ SQLite، تحتاج إلى تعيين ملف قاعدة البيانات في الحاوية: ```bash docker run -i --rm \ -v /path/to/config.yaml:/app/config.yaml \ -v /path/to/database.db:/app/database.db \ mcp/dbutils --config /app/config.yaml ``` ثم أشر إلى المسار المعين في التكوين الخاص بك: ```yaml connections: docker-sqlite: type: sqlite path: /app/database.db # المسار داخل الحاوية، وليس مسار المضيف ``` ## سيناريوهات التكوين الشائعة ### إدارة البيئات المتعددة ممارسة جيدة هي استخدام اصطلاحات تسمية واضحة للبيئات المختلفة: ```yaml connections: # بيئة التطوير dev-postgres: type: postgres host: localhost port: 5432 dbname: dev_db user: dev_user password: dev_pass # بيئة الاختبار test-postgres: type: postgres host: test-server.example.com port: 5432 dbname: test_db user: test_user password: test_pass # بيئة الإنتاج prod-postgres: type: postgres host: prod-db.example.com port: 5432 dbname: prod_db user: prod_user password: prod_pass ssl: mode: verify-full cert: /path/to/cert.pem key: /path/to/key.pem root: /path/to/root.crt ``` ### تكوين محدد للقراءة فقط والتحليلات بالنسبة لسيناريوهات تحليل البيانات، يوصى باستخدام حسابات للقراءة فقط وتكوين محسن: ```yaml connections: analytics-mysql: type: mysql host: analytics-db.example.com port: 3306 database: analytics user: analytics_readonly # استخدام حساب بأذونات قراءة فقط password: readonly_pass charset: utf8mb4 # تعيين مهلة أطول مناسبة لتحليل البيانات ``` ## نصائح استكشاف الأخطاء وإصلاحها إذا كان تكوين الاتصال الخاص بك لا يعمل، جرب: 1. **التحقق من الاتصال الأساسي**: استخدم عميل قاعدة البيانات الأصلي للتحقق من أن الاتصال يعمل 2. **التحقق من اتصال الشبكة**: تأكد من فتح منافذ الشبكة، وأن جدران الحماية تسمح بالوصول 3. **التحقق من بيانات الاعتماد**: تأكد من صحة اسم المستخدم وكلمة المرور 4. **مشاكل المسار**: بالنسبة لـ SQLite، تأكد من وجود المسار ولديه أذونات قراءة 5. **أخطاء SSL**: تحقق من مسارات وأذونات الشهادات، تحقق من أن الشهادات غير منتهية الصلاحية </div>

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/donghao1393/mcp-dbutils'

If you have feedback or need assistance with the MCP directory API, please join our Discord server