Basicamente, quero ser capaz de usar a linguagem de programação R para interagir
com um banco de dados MySQL disponível via phpMyAdmin. Agora estou tentando
determinar se os erros que estou recebendo ao tentar me conectar a este banco de dados são
porque estou transmitindo os argumentos errados ou se há apenas algo
fundamentalmente errado com a maneira como estou fazendo tudo.
Recebi as seguintes informações para trabalhar:
Algumas coisas dignas de nota:
Em outras palavras, não parece ser um problema com o banco de dados remoto
em si, minha instalação do MariaDB,
ou com R e seus pacotes. [Nota: o banco de dados que atualmente tenho acesso
representa apenas uma pequena amostra do banco de dados completo, portanto, baixar tudo
localmente não é uma opção viável].
No momento, estou tentando descobrir se as variáveis que estou usando no R
função para estabelecer uma conexão estão erradas (e, se for esse o caso, qual
devo usar em vez disso) ou se estou apenas fazendo tudo errado - talvez
porque há algo fundamentalmente diferente no phpMyAdmin que estou
ausência de. Se este for realmente o caso, gostaria de saber o que preciso
para estabelecer uma conexão (por exemplo, eu precisaria do endereço IP do
O próprio servidor MySQL pode se conectar remotamente?).
Para lhe dar uma ideia dos valores que tentei usar, aqui está um exemplo do
Código R que tentei:
con <- dbConnect(RMariaDB::MariaDB(),
host = 'tempdb.companyname.com/phpMyAdmin',
dbname = 'companyname',
user = 'dbs_guest',
password = 'guestpassword')
temptable <- tbl(con, "temptable")
Em particular, não tenho certeza se o valor de " host " está correto, especialmente
já que quando logado estou logado no servidor é dado como "Servidor: Localhost via socket UNIX".
Além disso, o " usuário " precisa ser listado como " dbs_guest @ localhost " (como é quando
logado no phpMyAdmin) ou isso estaria implícito no valor de "host". Por último,
Eu também poderia passar um argumento " port ", mas não tenho ideia do que seria
de qualquer forma. Ah, e não tenho certeza se isso dependeria de estar ou não
conectado ao phpMyAdmin (usando o Chrome, digamos) enquanto executa esses comandos.
Para reiterar, estou apenas tentando descobrir se há algo sobre phpMyAdmin
isso torna impossível o que estou tentando fazer (e o que eu precisaria fazer em vez disso)
ou se acabei de errar os valores das variáveis.
Obrigado pela sua paciência.
Atenciosamente,
Steve
@SplashDance Estou confuso, você sabe que o phpMyAdmin é apenas uma interface web e não um servidor de banco de dados, certo?
Eu não entendo porque R teria algo a ver com phpMyAdmin?
cc @ibennetch
cc @mauriciofauth
Eu entendi mal o seu problema?
Certo. Eu recebo esse phpMyAdmin uma interface para interagir com um servidor de banco de dados e não o próprio servidor. Ou, pelo menos, tenho um vago entendimento de que para interagir com o servidor tenho que passar pelo phpMyAdmin.
Mas agora eu só tenho o endereço do phpMyAdmin para trabalhar e estava pensando (e eu percebi que isso pode estar muito errado) que eu teria que, de fato, me conectar ao referido banco de dados através do phpMyAdmin de alguma forma.
Tenho que passar pelo phpMyAdmin.
Acho que não, e pelo que sei não oferecemos nenhuma API ou forma de interagir com bancos de dados.
A única maneira é a interação humana com a interface
Você tentou se conectar com R ao mysql como http://stla.github.io/stlapblog/posts/RMySQL.html sugere?
Mas agora eu só tenho o endereço phpMyAdmin para trabalhar
Talvez o servidor de banco de dados esteja na mesma máquina que o banco de dados, seria por isso que você só tem o nome de host do banco de dados "phpmyadmin" /? servidor
Isso responde à sua pergunta @SplashDance ?
A maioria das instalações do MySQL evita conexões de rede de entrada por padrão. Para se conectar diretamente de um endereço externo, como um aplicativo em execução no seu computador local, você teria que expor a porta MySQL para a Internet. Geralmente é uma prática de segurança ruim. Muitas vezes, o phpMyAdmin é executado no mesmo servidor que a instância do MySQL, então ele se conecta ao endereço localhost (127.0.0.1) ou por meio de um arquivo de soquete UNIX (que é o que o seu phpMyAdmin está fazendo).
No próprio phpMyAdmin, deliberadamente não incluímos nenhum método de refletir ou redirecionar as conexões de entrada diretamente para o MySQL porque isso seria expor o MySQL da mesma forma que abrir a porta do MySQL diretamente para a internet, novamente uma ideia muito ruim. É por isso que usar a própria URL phpMyAdmin como string de conexão não está funcionando. Você está correto ao dizer que precisa do endereço IP do servidor (ou nome do host) aqui.
Geralmente, você tem três opções para se conectar a uma instância remota do MySQL / MariaDB:
Infelizmente, o phpMyAdmin não pode ajudá-lo com nada disso.
Em primeiro lugar, deixe-me apenas dizer que realmente aprecio todas as suas respostas (especialmente considerando o amadorismo de minha pergunta inicial) e especialmente aprecio a resposta de Isaac - foi particularmente cuidadosa e muito útil.
De qualquer forma, é um alívio finalmente obter uma resposta definitiva para que não tenha que perder mais tempo tentando diferentes combinações de argumentos de função, etc.
Mais uma vez, obrigado pelo seu tempo.
Atenciosamente,
Steve
Comentários muito úteis
A maioria das instalações do MySQL evita conexões de rede de entrada por padrão. Para se conectar diretamente de um endereço externo, como um aplicativo em execução no seu computador local, você teria que expor a porta MySQL para a Internet. Geralmente é uma prática de segurança ruim. Muitas vezes, o phpMyAdmin é executado no mesmo servidor que a instância do MySQL, então ele se conecta ao endereço localhost (127.0.0.1) ou por meio de um arquivo de soquete UNIX (que é o que o seu phpMyAdmin está fazendo).
No próprio phpMyAdmin, deliberadamente não incluímos nenhum método de refletir ou redirecionar as conexões de entrada diretamente para o MySQL porque isso seria expor o MySQL da mesma forma que abrir a porta do MySQL diretamente para a internet, novamente uma ideia muito ruim. É por isso que usar a própria URL phpMyAdmin como string de conexão não está funcionando. Você está correto ao dizer que precisa do endereço IP do servidor (ou nome do host) aqui.
Geralmente, você tem três opções para se conectar a uma instância remota do MySQL / MariaDB:
Infelizmente, o phpMyAdmin não pode ajudá-lo com nada disso.