في الأساس ، أريد أن أكون قادرًا على استخدام لغة البرمجة R للتفاعل
مع قاعدة بيانات MySQL المتاحة عبر phpMyAdmin. الآن أحاول
تحديد ما إذا كانت الأخطاء التي أحاول الاتصال بقاعدة البيانات هذه أم لا
لأنني أقوم بتمرير الحجج الخاطئة أو ما إذا كان هناك شيء ما
خطأ جوهري في الطريقة التي أتبعها في كل شيء.
حصلت على المعلومات التالية للعمل معها:
بعض الأشياء الجديرة بالملاحظة:
بمعنى آخر ، لا يبدو أنها مشكلة في قاعدة البيانات البعيدة
نفسها ، تثبيت MariaDB الخاص بي ،
أو مع R وحزمها. [ملاحظة: قاعدة البيانات التي يمكنني الوصول إليها حاليًا
لا يمثل سوى عينة صغيرة من قاعدة البيانات الكاملة ، لذا فإن تنزيل كل شيء
محليًا ليس خيارًا قابلاً للتطبيق].
الآن أحاول معرفة ما إذا كانت المتغيرات التي أستخدمها في R.
وظيفة إنشاء اتصال خاطئة (وإذا كانت هذه هي الحالة ، فماذا
هل يجب أن أستخدمه بدلاً من ذلك) أو إذا كنت أفكر في كل شيء بشكل خاطئ - ربما
لأن هناك شيئًا مختلفًا تمامًا عن phpMyAdmin أنا
مفقود. إذا كان هذا هو الحال في الواقع، أود أن أعرف ما أود أن الحاجة
لإنشاء اتصال (على سبيل المثال ، هل سأحتاج إلى عنوان IP الخاص بـ
خادم MySQL نفسه ليكون قادرًا على الاتصال عن بُعد؟).
لإعطائك فكرة عن القيم التي حاولت استخدامها ، إليك مثال على
كود R الذي جربته:
con <- dbConnect(RMariaDB::MariaDB(),
host = 'tempdb.companyname.com/phpMyAdmin',
dbname = 'companyname',
user = 'dbs_guest',
password = 'guestpassword')
temptable <- tbl(con, "temptable")
على وجه الخصوص ، لست متأكدًا مما إذا كانت قيمة " المضيف " صحيحة ، خاصة
منذ عندما قمت بتسجيل الدخول إلى الخادم يتم إعطاء "الخادم: المضيف المحلي عبر مقبس UNIX".
أيضا، فإن "المستخدم" ضرورة أن يتم سرد باسم " dbs_guest @ المضيف المحلي " (كما هو الحال عندما
تسجيل الدخول إلى phpMyAdmin) أو يمكن أن تتضمنه قيمة "host". أخيرا،
يمكنني أيضًا تمرير حجة " المنفذ " ولكن ليس لدي أي فكرة عما سيكون عليه ذلك
على أي حال. أوه ، ولست متأكدًا مما إذا كان أي من هذا سيعتمد على ما إذا كنت حاليًا أم لا
قم بتسجيل الدخول إلى phpMyAdmin (باستخدام Chrome ، على سبيل المثال) أثناء تشغيل هذه الأوامر.
للتكرار ، أحاول فقط معرفة ما إذا كان هناك شيء يتعلق بـ phpMyAdmin
هذا يجعل ما أحاول القيام به مستحيلاً (وما سأفعله بدلاً من ذلك)
أو إذا كانت قيم المتغيرات كلها خاطئة.
شكرا لصبرك.
بإخلاص،
ستيف
SplashDance أنا في حيرة من
لا أفهم لماذا يكون لـ R علاقة بـ phpMyAdmin؟
cc ibennetch
cc moriciofauth
هل أسأت فهم مشكلتك؟
حق. أحصل على واجهة phpMyAdmin للتفاعل مع خادم قاعدة البيانات وليس الخادم نفسه. أو ، على الأقل ، لدي بعض الفهم الغامض أنه للتفاعل مع الخادم ، يجب أن أتصفح phpMyAdmin.
ولكن الآن ليس لدي سوى عنوان بريس للعمل مع وكنت أفكر (وأحصل على أن هذا يمكن أن يكون بعيدا) التي كنت قد ل، في الواقع، يربط إلى قاعدة البيانات من خلال وقال بريس بطريقة أو بأخرى.
لا بد لي من الذهاب من خلال phpMyAdmin.
لا أعتقد ذلك ، وما أعلم أننا لا نقدم أي واجهة برمجة تطبيقات أو طريقة للتفاعل مع قواعد البيانات.
الطريقة الوحيدة هي تفاعل الإنسان مع الواجهة
هل حاولت الاتصال بـ R بـ mysql مثل http://stla.github.io/stlapblog/posts/RMySQL.html يقترح؟
لكن في الوقت الحالي ليس لدي سوى عنوان phpMyAdmin للعمل معه
ربما يكون خادم قاعدة البيانات على نفس الجهاز من قاعدة البيانات ، وهذا هو سبب امتلاكك فقط اسم مضيف "phpmyadmin" / قاعدة البيانات؟ الخادم
هل هذا يجيب على سؤالك SpashDance ؟
تمنع معظم عمليات تثبيت MySQL اتصالات الشبكة الواردة افتراضيًا. من أجل الاتصال مباشرة من عنوان خارجي ، مثل تطبيق يعمل على جهاز الكمبيوتر المحلي الخاص بك ، يجب أن تعرض منفذ MySQL للإنترنت. هذا بشكل عام ممارسة أمنية سيئة. في كثير من الأحيان ، يعمل phpMyAdmin على نفس الخادم مثل مثيل MySQL ، لذلك فإنه يتصل إما بعنوان المضيف المحلي (127.0.0.1) أو عبر ملف مقبس UNIX (وهو ما يقوم به phpMyAdmin).
داخل phpMyAdmin نفسه ، لا نقوم بتضمين أي طريقة لعكس أو إعادة توجيه الاتصالات الواردة مباشرة إلى MySQL لأن ذلك سيعرض MySQL تمامًا مثل فتح منفذ MySQL مباشرة على الإنترنت ، مرة أخرى فكرة سيئة للغاية. لهذا السبب فإن استخدام عنوان URL الخاص بـ phpMyAdmin نفسه لأن سلسلة الاتصال الخاصة بك لا تعمل. أنت محق في أنك تحتاج إلى عنوان IP للخادم (أو اسم المضيف) هنا بدلاً من ذلك.
بشكل عام ، لديك ثلاثة خيارات للاتصال بمثيل MySQL / MariaDB البعيد:
للأسف ، لا يمكن لـ phpMyAdmin مساعدتك في أي من هؤلاء.
بادئ ذي بدء ، اسمحوا لي فقط أن أقول إنني أقدر حقًا جميع إجاباتك (لا سيما بالنظر إلى صدق سؤالي الأولي) وأنا أقدر بشكل خاص رد إسحاق - فقد كان مدروسًا ومفيدًا للغاية.
إذا كان هناك أي شيء ، فمن المريح الحصول أخيرًا على إجابة نهائية ، لذلك لن أضطر إلى إضاعة المزيد من الوقت في تجربة مجموعات مختلفة من حجج الوظيفة ، إلخ
مرة أخرى، شكرا على وقتك.
بإخلاص،
ستيف
التعليق الأكثر فائدة
تمنع معظم عمليات تثبيت MySQL اتصالات الشبكة الواردة افتراضيًا. من أجل الاتصال مباشرة من عنوان خارجي ، مثل تطبيق يعمل على جهاز الكمبيوتر المحلي الخاص بك ، يجب أن تعرض منفذ MySQL للإنترنت. هذا بشكل عام ممارسة أمنية سيئة. في كثير من الأحيان ، يعمل phpMyAdmin على نفس الخادم مثل مثيل MySQL ، لذلك فإنه يتصل إما بعنوان المضيف المحلي (127.0.0.1) أو عبر ملف مقبس UNIX (وهو ما يقوم به phpMyAdmin).
داخل phpMyAdmin نفسه ، لا نقوم بتضمين أي طريقة لعكس أو إعادة توجيه الاتصالات الواردة مباشرة إلى MySQL لأن ذلك سيعرض MySQL تمامًا مثل فتح منفذ MySQL مباشرة على الإنترنت ، مرة أخرى فكرة سيئة للغاية. لهذا السبب فإن استخدام عنوان URL الخاص بـ phpMyAdmin نفسه لأن سلسلة الاتصال الخاصة بك لا تعمل. أنت محق في أنك تحتاج إلى عنوان IP للخادم (أو اسم المضيف) هنا بدلاً من ذلك.
بشكل عام ، لديك ثلاثة خيارات للاتصال بمثيل MySQL / MariaDB البعيد:
للأسف ، لا يمكن لـ phpMyAdmin مساعدتك في أي من هؤلاء.