Phpmyadmin: Подключение к базе данных phpMyAdmin удаленно с помощью R.

Созданный на 11 мар. 2019  ·  5Комментарии  ·  Источник: phpmyadmin/phpmyadmin

Моя проблема

По сути, я хочу иметь возможность использовать язык программирования R для взаимодействия
с базой данных MySQL, доступной через phpMyAdmin. Прямо сейчас я пытаюсь
определить, являются ли ошибки, которые я получаю при подключении к этой базе данных
потому что я передаю неправильные аргументы или есть что-то
в корне неправильно в том, как я все делаю.

Предварительная информация

Мне дали следующую информацию для работы:

  • хост: tempdb.companyname.com/phpMyAdmin
  • имя пользователя: dbs_guest
  • пароль: guestpassword
  • название базы данных: название компании

Что я пробовал и что сработало

Стоит отметить несколько моментов:

  1. Мне удалось войти в phpMyAdmin через Chrome и успешно запустить
    запросов, поэтому я знаю, что сервер MySQL работает, а информация для входа
    правильный.
  2. Я также смог экспортировать базу данных в виде файла .sql; установил это
    локально; получили доступ к нему напрямую с помощью MariaDB ; и получили к нему доступ, используя
    R и соответствующие пакеты R.

Другими словами, это не похоже на проблему с удаленной базой данных.
сама моя установка 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")

В частности, я не уверен, правильно ли значение " host ", особенно
поскольку, когда я вошел в систему, я вошел на сервер как "Сервер: Локальный хост через сокет UNIX".
Кроме того, " пользователь " должен быть указан как " dbs_guest @ localhost " (как это бывает, когда
вошел в phpMyAdmin) или это будет подразумеваться значением "host". Наконец,
Я мог бы также передать аргумент " порт ", но я понятия не имею, что это будет
тем не мение. О, и я не уверен, будет ли это зависеть от того,
во время выполнения этих команд вошел в phpMyAdmin (например, с помощью Chrome).

Повторюсь, я просто пытаюсь узнать, есть ли что-нибудь о phpMyAdmin
это делает невозможным то, что я пытаюсь сделать (и то, что мне нужно было бы сделать вместо этого)
или если я только что ошибся в значениях переменных.

Спасибо за терпеливость.

С уважением,
Стив

Дополнительный контекст

phpMyAdmin
  • Версия phpMyAdmin: 4.0.10deb1
Сервер базы данных
  • Сервер: Localhost через сокет UNIX
  • Тип сервера: MySQL
  • Версия сервера: 5.5.41-0ubuntu0.14.04.1 - (Ubuntu)
  • Версия протокола: 10
  • Пользователь: dbs_guest @ localhost
  • Кодировка сервера: UTF-8 Unicode (utf8)
веб сервер
  • Apache / 2.4.7 (Ubuntu)
  • Версия клиента базы данных: libmysql - 5.5.41
  • Расширение PHP: mysqli
question wontfix

Самый полезный комментарий

Большинство установок MySQL по умолчанию предотвращают входящие сетевые соединения. Для прямого подключения с внешнего адреса, такого как приложение, работающее на вашем локальном компьютере, вам необходимо открыть порт MySQL для Интернета. Как правило, это плохая практика безопасности. Часто phpMyAdmin запускается на том же сервере, что и экземпляр MySQL, поэтому он подключается либо к адресу localhost (127.0.0.1), либо через файл сокета UNIX (что и делает ваш phpMyAdmin).

Внутри самого phpMyAdmin мы намеренно не включаем какой-либо метод отражения или перенаправления входящих подключений непосредственно к MySQL, потому что это в значительной степени подвергнет MySQL тому же воздействию, что и открытие порта MySQL непосредственно в Интернет, что опять же очень плохая идея. Вот почему использование самого URL-адреса phpMyAdmin в качестве строки подключения не работает. Вы правы, что вместо этого вам понадобится IP-адрес сервера (или имя хоста).

Как правило, у вас есть три варианта подключения к удаленному экземпляру MySQL / MariaDB:

  1. открывать порт напрямую (чего я не рекомендую),
  2. размещение вашего приложения непосредственно на сервере и удаленный доступ к нему (например, в случае с phpMyAdmin, WordPress или многими другими инструментами, хотя я не знаю, можно ли использовать R таким образом), или
  3. предоставление API на сервере через какое-то настраиваемое приложение, которое размещено на сервере MySQL и к которому ваше локальное приложение может напрямую подключаться.

К сожалению, phpMyAdmin не может вам помочь ни с одним из них.

Все 5 Комментарий

@SplashDance Я запутался, вы же знаете, что phpMyAdmin - это всего лишь веб-интерфейс, а не сервер базы данных, верно?

Я не понимаю, почему R имеет какое-либо отношение к phpMyAdmin?

cc @ibennetch
cc @mauriciofauth

Я неправильно понял вашу проблему?

Правильно. Я получаю этот phpMyAdmin как интерфейс для взаимодействия с сервером базы данных, а не с самим сервером. Или, по крайней мере, у меня есть смутное представление о том, что для взаимодействия с сервером мне нужно пройти через phpMyAdmin.

Но прямо сейчас у меня есть только адрес phpMyAdmin для работы, и я думал (и я понимаю, что это могло быть далеко ), что мне, по сути, придется как-то подключиться к указанной базе данных через phpMyAdmin.

Мне нужно пройти через phpMyAdmin.

Я думаю, что нет, и, насколько я знаю, мы не предлагаем никаких API или способов взаимодействия с базами данных.
Единственный способ - это взаимодействие человека с интерфейсом.

Вы пробовали подключиться с R к mysql, как предлагает http://stla.github.io/stlapblog/posts/RMySQL.html ?

Но сейчас у меня есть только адрес phpMyAdmin для работы

Может быть, сервер базы данных находится на том же компьютере, что и база данных, поэтому у вас есть только имя хоста "phpmyadmin" / database? сервер

Это ответ на ваш вопрос @SplashDance ?

Большинство установок MySQL по умолчанию предотвращают входящие сетевые соединения. Для прямого подключения с внешнего адреса, такого как приложение, работающее на вашем локальном компьютере, вам необходимо открыть порт MySQL для Интернета. Как правило, это плохая практика безопасности. Часто phpMyAdmin запускается на том же сервере, что и экземпляр MySQL, поэтому он подключается либо к адресу localhost (127.0.0.1), либо через файл сокета UNIX (что и делает ваш phpMyAdmin).

Внутри самого phpMyAdmin мы намеренно не включаем какой-либо метод отражения или перенаправления входящих подключений непосредственно к MySQL, потому что это в значительной степени подвергнет MySQL тому же воздействию, что и открытие порта MySQL непосредственно в Интернет, что опять же очень плохая идея. Вот почему использование самого URL-адреса phpMyAdmin в качестве строки подключения не работает. Вы правы, что вместо этого вам понадобится IP-адрес сервера (или имя хоста).

Как правило, у вас есть три варианта подключения к удаленному экземпляру MySQL / MariaDB:

  1. открывать порт напрямую (чего я не рекомендую),
  2. размещение вашего приложения непосредственно на сервере и удаленный доступ к нему (например, в случае с phpMyAdmin, WordPress или многими другими инструментами, хотя я не знаю, можно ли использовать R таким образом), или
  3. предоставление API на сервере через какое-то настраиваемое приложение, которое размещено на сервере MySQL и к которому ваше локальное приложение может напрямую подключаться.

К сожалению, phpMyAdmin не может вам помочь ни с одним из них.

Прежде всего, позвольте мне просто сказать, что я действительно ценю все ваши ответы (особенно с учетом дилетантства моего первоначального вопроса), и я особенно ценю ответ Исаака - он был особенно вдумчивым и очень полезным.

Во всяком случае, приятно наконец получить окончательный ответ, поэтому мне больше не придется тратить время на попытки различных комбинаций аргументов функций и т. Д.

Еще раз спасибо за уделенное время.
С уважением,
Стив

Была ли эта страница полезной?
0 / 5 - 0 рейтинги