Pergunta

Preciso me conectar a um banco de dados MySQL remoto no PHP.

Especificamente, tenho isso como constante: define ("database_server", "localhost"); ...

$db = @mysql_connect(DB_SERVER, DB_USER, DB_PASS);

Quero copiar o site para minha máquina local, mas ainda me conectar ao banco de dados principal.

Posso fazer isso? Se sim, como? Tudo o que tenho é acesso FTP.

Foi útil?

Solução

Você precisa do IP/URL do banco de dados e colocar isso em vez de localhost.
Você precisa garantir que a configuração do banco de dados permita conexões remotas/fora da rede local.
Depois de obter o IP do banco de dados (deve ser fornecido pela equipe de suporte, se estiver sendo suportada), você saberá.

Se tudo o que você precisa fazer é copiar os dados e criá -los localmente em sua máquina, para não destruir dados ao vivo, use a guia Exportar no PhpMyadmin. Presumo que você não tenha muitos dados.
Phpmyadmin-> Selecione o db (no quadro esquerdo)-> Pressione a guia Exportar (quadro superior direito).
Deve ficar claro a partir daí.
Você pode exportá -lo como SQL e executar este SQL em sua máquina local.

Outras dicas

Eu acho que seu servidor de banco de dados está recusando conexões remotas. Se você possui cpanel, uma seção é chamada algo como "acesso ao banco de dados remoto", onde você pode permitir que eles sejam certos intervalos de IP.

Eu sugiro que você exporte o banco de dados em questão e o importe localmente. Dessa forma, você não destruirá dados ao vivo se estragar tudo.

Muitos, se não a maioria, os provedores de hospedagem também fornecem uma interface DB como o PHPMyadmin. Você pode exportar o banco de dados a partir daí.

+1 gnud. Você não deve usar o banco de dados de produção para o trabalho de desenvolvimento, mesmo se você poderia Configure -o para ouvir o acesso externo em uma interface pública da Internet (*). Um deslizamento do mouse e você está rabiscendo dados ao vivo importantes. Em vez disso, você deve trabalhar em um servidor de desenvolvimento independente, do qual você pode pressionar as alterações de código para o servidor ao vivo quando estiver trabalhando e testado.

(*: O que é por si só uma má idéia: se as senhas são muito fracas ou você está executando uma versão antiga do MySQL com explorações disponíveis, você será invadido por sondas automatizadas muito rapidamente.)

Você normalmente exportaria o banco de dados do shell usando o mysqldump dbname > dbdump.sql comando e importe -o para o seu servidor local, colocando -o para mysql dbname < dbdump.sql. Também pode haver uma interface da Web do MySQL Admin instalada no servidor que você pode usar. Mas se tudo o que você tem é FTP, você realmente não recebeu as ferramentas necessárias para fazer o trabalho de desenvolvimento. Veja se você pode obter um banco de dados vazio ou dummy para testar o site.

(Além disso, o FTP é um negócio desagradável ... realmente neste século você deveria estar usando o SFTP.)

A abordagem mais simples é ter DATABASE_SERVER ser definido como database (ou algo igualmente significativo) e coloque uma entrada no arquivo de hosts. Na sua máquina local, isso pode apontar para o endereço remoto, no servidor, isso apontará para 127.0.0.1.

define('DATABASE_SERVER', database);

No arquivo do Windows Your Sites é:

c:\windows\system32\drivers\etc\hosts

com:

database <remote_ip>

Linux:

/etc/hosts

com:

database 127.0.0.1

Nota lateral: o seu banco de dados remoto é um banco de dados de produção? Se sim, você realmente não deveria estar usando o banco de dados remoto para o trabalho de desenvolvimento, a menos que você esteja usando um DB dev separado - mesmo assim, eu não corria o risco de Rogue Dev Queries consumir os recursos remotos do banco de dados.

Atualizar: Doh, perdido, você está limitado ao acesso ao FTP.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top