Phpmyadmin: Menghubungkan ke Database phpMyAdmin dari Jarak Jauh Menggunakan R.

Dibuat pada 11 Mar 2019  ·  5Komentar  ·  Sumber: phpmyadmin/phpmyadmin

Masalah Saya

Pada dasarnya, saya ingin bisa menggunakan bahasa pemrograman R untuk berinteraksi
dengan database MySQL yang tersedia melalui phpMyAdmin. Saat ini saya sedang mencoba
menentukan apakah kesalahan yang saya coba sambungkan ke database ini
karena saya menyampaikan argumen yang salah atau apakah hanya ada sesuatu
pada dasarnya salah dengan cara saya melakukan segala hal.

Informasi Awal

Saya diberi informasi berikut untuk dikerjakan:

  • host: tempdb.companyname.com/phpMyAdmin
  • nama pengguna: dbs_guest
  • password: kata sandi tamu
  • nama database: nama perusahaan

Apa yang Saya Coba dan Apa yang Berhasil

Beberapa hal yang perlu diperhatikan:

  1. Saya sudah bisa login ke phpMyAdmin melalui Chrome dan sudah berhasil dijalankan
    pertanyaan jadi saya tahu bahwa server MySQL berfungsi dan informasi login
    benar.
  2. Saya juga dapat mengekspor database sebagai file .sql; telah mengaturnya
    secara lokal; telah mengaksesnya secara langsung menggunakan MariaDB ; dan telah mengaksesnya menggunakan
    R dan paket R yang relevan.

Dengan kata lain, tampaknya tidak ada masalah dengan database jarak jauh
itu sendiri, pemasangan MariaDB saya,
atau dengan R dan paketnya. [Catatan: database yang saat ini saya akses
hanya mewakili sebagian kecil sampel dari database lengkap sehingga mengunduh semuanya
lokal bukanlah pilihan yang layak].

Solusi yang Saya Cari

Sekarang saya mencoba untuk mencari tahu apakah variabel yang saya gunakan di R
fungsi untuk membuat koneksi salah (dan, jika ini masalahnya, apa
haruskah saya menggunakan sebagai gantinya) atau jika saya hanya melakukan semuanya dengan salah - mungkin
karena ada sesuatu yang secara fundamental berbeda tentang phpMyAdmin bahwa saya
hilang. Jika ini memang terjadi, saya ingin tahu apa yang akan saya butuhkan
untuk membuat koneksi (misalnya, apakah saya memerlukan alamat ip dari
Server MySQL itu sendiri untuk dapat terhubung dari jarak jauh?).

Untuk memberi Anda gambaran tentang nilai yang telah saya coba gunakan, berikut ini contoh dari
Kode R yang saya coba:

con <- dbConnect(RMariaDB::MariaDB(),
                 host = 'tempdb.companyname.com/phpMyAdmin',
                 dbname = 'companyname',
                 user = 'dbs_guest',
                 password = 'guestpassword')
temptable <- tbl(con, "temptable")

Secara khusus, saya tidak yakin apakah nilai " host " benar, khususnya
karena ketika login saya login di server diberikan sebagai "Server: Localhost melalui soket UNIX".
Juga, apakah " user " perlu terdaftar sebagai " dbs_guest @ localhost " (seperti saat ini
login ke phpMyAdmin) atau apakah itu tersirat oleh nilai "host". Akhirnya,
Saya juga bisa memberikan argumen " port " tetapi saya tidak tahu apa itu
bagaimanapun. Oh, dan saya tidak yakin apakah semua ini akan bergantung pada apakah saya saat ini atau tidak
masuk ke phpMyAdmin (katakanlah menggunakan Chrome) saat menjalankan perintah ini.

Untuk mengulangi, saya hanya mencoba mencari tahu apakah ada sesuatu tentang phpMyAdmin
yang membuat apa yang saya coba lakukan menjadi tidak mungkin (dan apa yang perlu saya lakukan sebagai gantinya)
atau jika saya baru saja mendapatkan nilai variabel yang salah.

Terima kasih atas kesabaran Anda.

Hormat kami,
Steve

Konteks tambahan

phpMyAdmin
  • versi phpMyAdmin: 4.0.10deb1
Server database
  • Server: Localhost melalui soket UNIX
  • Jenis server: MySQL
  • Versi server: 5.5.41-0ubuntu0.14.04.1 - (Ubuntu)
  • Versi protokol: 10
  • Pengguna: dbs_guest @ localhost
  • Charset server: UTF-8 Unicode (utf8)
Server web
  • Apache / 2.4.7 (Ubuntu)
  • Versi klien database: libmysql - 5.5.41
  • Ekstensi PHP: mysqli
question wontfix

Komentar yang paling membantu

Sebagian besar penginstalan MySQL mencegah koneksi jaringan masuk secara default. Untuk terhubung langsung dari alamat eksternal, seperti aplikasi yang berjalan di komputer lokal Anda, Anda harus mengekspos port MySQL ke internet. Itu umumnya praktik keamanan yang buruk. Sering kali, phpMyAdmin berjalan di server yang sama dengan instance MySQL, sehingga terhubung ke alamat localhost (127.0.0.1) atau melalui file soket UNIX (yang dilakukan phpMyAdmin Anda).

Dalam phpMyAdmin itu sendiri, kami sengaja tidak menyertakan metode apa pun untuk merefleksikan atau mengarahkan koneksi masuk langsung ke MySQL karena itu akan mengekspos MySQL sama seperti membuka port MySQL langsung ke internet, sekali lagi ide yang sangat buruk. Itulah mengapa menggunakan URL phpMyAdmin itu sendiri sebagai string koneksi Anda tidak berfungsi. Anda benar bahwa Anda memerlukan alamat IP server (atau nama host) di sini.

Secara umum, Anda memiliki tiga opsi untuk menghubungkan ke instance MySQL / MariaDB jarak jauh:

  1. mengekspos port secara langsung (yang saya rekomendasikan),
  2. menghosting aplikasi Anda langsung di server dan mengaksesnya dari jarak jauh (seperti halnya dengan phpMyAdmin, WordPress, atau banyak alat lainnya, meskipun saya tidak tahu apakah R dapat digunakan dengan cara ini), atau
  3. mengekspos API di server melalui beberapa aplikasi khusus, yang dihosting di server MySQL, dan yang dapat langsung dihubungkan dengan aplikasi lokal Anda.

Sayangnya, phpMyAdmin tidak dapat membantu Anda dengan semua itu.

Semua 5 komentar

@SplashDance Saya bingung, Anda tahu phpMyAdmin hanya antarmuka web dan bukan server database, bukan?

Saya tidak mengerti mengapa R ada hubungannya dengan phpMyAdmin?

cc @ibennetch
cc @maurici

Apakah saya salah memahami masalah Anda?

Baik. Saya mendapatkan phpMyAdmin itu sebuah antarmuka untuk berinteraksi dengan server database dan bukan server itu sendiri. Atau, setidaknya, saya memiliki pemahaman yang kabur bahwa untuk berinteraksi dengan server saya harus melalui phpMyAdmin.

Tetapi saat ini saya hanya memiliki alamat phpMyAdmin untuk digunakan dan saya berpikir (dan saya mengerti bahwa ini bisa menjadi jalan keluar) bahwa saya harus, pada dasarnya, terhubung ke database tersebut melalui phpMyAdmin entah bagaimana.

Saya harus melalui phpMyAdmin.

Saya kira tidak, dan dari apa yang saya tahu kami tidak menawarkan api atau cara untuk berinteraksi dengan database.
Satu-satunya cara adalah interaksi manusia dengan antarmuka

Apakah Anda mencoba menghubungkan dengan R ke mysql seperti yang disarankan oleh http://stla.github.io/stlapblog/posts/RMySQL.html ?

Tetapi saat ini saya hanya memiliki alamat phpMyAdmin untuk digunakan

Mungkin server database ada di mesin yang sama dengan database, ini sebabnya Anda hanya memiliki nama host dari "phpmyadmin" / database? server

Apakah itu menjawab pertanyaan Anda @SplashDance ?

Sebagian besar penginstalan MySQL mencegah koneksi jaringan masuk secara default. Untuk terhubung langsung dari alamat eksternal, seperti aplikasi yang berjalan di komputer lokal Anda, Anda harus mengekspos port MySQL ke internet. Itu umumnya praktik keamanan yang buruk. Sering kali, phpMyAdmin berjalan di server yang sama dengan instance MySQL, sehingga terhubung ke alamat localhost (127.0.0.1) atau melalui file soket UNIX (yang dilakukan phpMyAdmin Anda).

Dalam phpMyAdmin itu sendiri, kami sengaja tidak menyertakan metode apa pun untuk merefleksikan atau mengarahkan koneksi masuk langsung ke MySQL karena itu akan mengekspos MySQL sama seperti membuka port MySQL langsung ke internet, sekali lagi ide yang sangat buruk. Itulah mengapa menggunakan URL phpMyAdmin itu sendiri sebagai string koneksi Anda tidak berfungsi. Anda benar bahwa Anda memerlukan alamat IP server (atau nama host) di sini.

Secara umum, Anda memiliki tiga opsi untuk menghubungkan ke instance MySQL / MariaDB jarak jauh:

  1. mengekspos port secara langsung (yang saya rekomendasikan),
  2. menghosting aplikasi Anda langsung di server dan mengaksesnya dari jarak jauh (seperti halnya dengan phpMyAdmin, WordPress, atau banyak alat lainnya, meskipun saya tidak tahu apakah R dapat digunakan dengan cara ini), atau
  3. mengekspos API di server melalui beberapa aplikasi khusus, yang dihosting di server MySQL, dan yang dapat langsung dihubungkan dengan aplikasi lokal Anda.

Sayangnya, phpMyAdmin tidak dapat membantu Anda dengan semua itu.

Pertama-tama, izinkan saya mengatakan bahwa saya sangat menghargai semua tanggapan Anda (terutama mengingat amatiran pertanyaan awal saya) dan saya terutama menghargai tanggapan Isaac - ini sangat bijaksana dan sangat membantu.

Jika ada, melegakan akhirnya mendapatkan jawaban yang pasti jadi saya tidak perlu membuang waktu lagi untuk mencoba kombinasi argumen fungsi yang berbeda, dll.

Sekali lagi, terima kasih atas waktu Anda.
Hormat kami,
Steve

Apakah halaman ini membantu?
0 / 5 - 0 peringkat