Acessando o Banco de Dados

Como acessar o banco de dados

Em um host normal, geralmente você precisa incluir as credenciais de conexão ao banco manualmente - hard-coded em um arquivo de configuração ou até mesmo no código. Na Getup é um pouco diferente: as credenciais de conexão ao banco são guardados no seu gear de aplicação, em variáveis de ambiente, facilmente acessíveis a partir de qualquer linguagem.

Veja abaixo alguns exemplos de como acessar as credenciais de conexão ao banco:

PHP

<?php
$database_host = getenv('OPENSHIFT_MYSQL_DB_HOST');
$database_port = getenv('OPENSHIFT_MYSQL_DB_PORT');
$database_username = getenv('OPENSHIFT_MYSQL_DB_USERNAME');
$database_password = getenv('OPENSHIFT_MYSQL_DB_PASSWORD');
$database_name = getenv('OPENSHIFT_APP_NAME');
?>

Node.js

database_host     = process.env.OPENSHIFT_MONGODB_DB_HOST;
database_port = process.env.OPENSHIFT_MONGODB_DB_PORT;
database_username = process.env.OPENSHIFT_MONGODB_DB_USERNAME;
database_password = process.env.OPENSHIFT_MONGODB_DB_PASSWORD;
database_name = process.env.OPENSHIFT_APP_NAME;

Python

import os
database_host = os.environ['OPENSHIFT_MYSQL_DB_HOST']
database_port = os.environ['OPENSHIFT_MYSQL_DB_PORT']
database_username = os.environ['OPENSHIFT_MYSQL_DB_USERNAME']
database_password = os.environ['OPENSHIFT_MYSQL_DB_PASSWORD']
database_name = os.environ['OPENSHIFT_APP_NAME']

Ruby

database_host     = ENV['OPENSHIFT_MYSQL_DB_HOST']
database_port = ENV['OPENSHIFT_MYSQL_DB_PORT']
database_username = ENV['OPENSHIFT_MYSQL_DB_USERNAME']
database_password = ENV['OPENSHIFT_MYSQL_DB_PASSWORD']
database_name = ENV['OPENSHIFT_APP_NAME']

Usando o rhc para listar informações do cartucho

Para listar as variaveis de ambiente a partir de seu computador, basta usar o comando rhc cartridge-show, como demonstrado abaixo:

$ rhc cartridge-show mysql-5.1 --app [APP]
mysql-5.1 (MySQL Database 5.1)
------------------------------
Gears: Located with php-5.3, phpmyadmin-3.4
Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/
Database Name: php
Password: [SENHA_DO_BANCO]
Username: [USUARIO_DO_BANCO]

Acessando o gear via ssh e imprimindo as credenciais do banco

Se preferir, faça um SSH ao gear da aplicação e imprima diretamente as variáveis de ambiente:

$ rhc ssh myapp
Connecting to 515b43e7851943c85900006b@myapp-mydom.getup.io ...
...
>
env | grep 'OPENSHIFT.*DB' | sort
OPENSHIFT_MONGODB_DB_HOST=127.2.19.129
OPENSHIFT_MONGODB_DB_PORT=27017
OPENSHIFT_MONGODB_DB_USERNAME=[USUARIO_DO_BANCO]
OPENSHIFT_MONGODB_DB_PASSWORD=[SENHA_DO_BANCO]
OPENSHIFT_MONGODB_DB_URL=mongodb://[USUARIO_DO_BANCO]:[SENHA_DO_BANCO]@127.2.19.129:27017/
OPENSHIFT_MYSQL_DB_HOST=127.2.19.129
OPENSHIFT_MYSQL_DB_PORT=3306
OPENSHIFT_MYSQL_DB_USERNAME=[USUARIO_DO_BANCO]
OPENSHIFT_MYSQL_DB_PASSWORD=[SENHA_DO_BANCO]
OPENSHIFT_MYSQL_DB_URL=mysql://[USUARIO_DO_BANCO]:[SENHA_DO_BANCO]@127.2.19.129:3306/
Tem mais dúvidas? Envie uma solicitação

5 Comentários

  • 0
    Avatar
    Rodolfo Ramos

    Estou tendo problemas para conectar ao meu cartridge MySql pelo CodeIgniter.

    Existe alguma outra forma de fazer essa conexão?

  • 0
    Avatar
    Diego Castro

    Olá Rodolfo, experimente capturar as variáveis com a função getenv(), ex:

    $database_host = getenv('OPENSHIFT_MYSQL_DB_HOST');

    $database_port = getenv('OPENSHIFT_MYSQL_DB_PORT');

    $database_username = getenv('OPENSHIFT_MYSQL_DB_USERNAME');

    $database_password = getenv('OPENSHIFT_MYSQL_DB_PASSWORD');

    $database_name = getenv('OPENSHIFT_APP_NAME');

  • 0
    Avatar
    Antônio Freire Costa Filho

    Bom dia.

    Preciso montar a seguinte connectionstring:

    if (process.env.OPENSHIFT_MONGODB_DB_URL) {
         var mongodburl = process.env.OPENSHIFT_MONGODB_DB_URL + process.env.OPENSHIFT_APP_NAME;
    } else {
         var mongodburl = 'mongodb://meu-usuario:minha-senha@127.0.0.1:27017/meu-banco';
    }

    Pregunta:
    esta linha está correta ?
    var mongodburl = process.env.OPENSHIFT_MONGODB_DB_URL + process.env.OPENSHIFT_APP_NAME;

    Senão, como incluir usuário e senha ?

    Obrigado

  • 0
    Avatar
    Suporte

    Olá Antônio, você pode incluir usuário e senha utilizando as variaveis de ambiente.

     

    Segue:

    // default to a 'localhost' configuration:
    var connection_string = '127.0.0.1:27017/YOUR_APP_NAME';
    // if OPENSHIFT env variables are present, use the available connection info:
    if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
      connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
      process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
      process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
      process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
      process.env.OPENSHIFT_APP_NAME;
    }
  • 0
    Avatar
    Antônio Freire Costa Filho

    Funcionou obrigado. Apenas inclui a string "mongdb://", como segue:

    if(process.env.OPENSHIFT_MONGODB_DB_PASSWORD){
    mongodburl = "mongodb://" +         process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
    process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
    process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
    process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
    process.env.OPENSHIFT_APP_NAME;
    }

    Mais uma vez, obrigado pela ajuda.

Por favor, entre para comentar.
Powered by Zendesk