MYSQL *mysql_real_connect(MYSQL *mysql, const char
          *host, const char *user, const char *passwd, const char *db,
          unsigned int port, const char *unix_socket, unsigned long
          client_flag)
        
Descrição
          mysql_real_connect() tenta estabelecer uma
          conexão mecanismo MySQL de banco de dados executando em
          host.
          mysql_real_connect() deve completar com
          suceeso antes que você possa executar qualquer um das outars
          funçãoes da API, com a excessão de
          mysql_get_client_info().
        
Os parâmetros são especificados da seguinte forma:
              O primeiro parâmetro deve ser o endereço de uma
              estrutura MYSQL existente. Antes de
              chamar mysql_real_connect() você deve
              chamar mysql_init() para inicializar a
              estrutura MYSQL. Você pode alterar
              vária opções de conexão com a chamada
              mysql_options(). See
              Secção 12.1.3.40, “mysql_options()”.
            
              O valor de host pode ser tanto um nome
              de máquivo quanto um endereço IP. Se
              host é NULL ou a
              string "localhost", a conexão é feita
              na máquina local. Se o SO suporta sockets (Unix) ou named
              pipes (Windows), eles são utilizados em vez de TCP/IP
              para a conexão ao servidor.
            
              O parâmetro user contém a
              indetificação do usuário MySQL. Se
              user é NULL ou a
              string vazia "", considera-se o
              usuário padrão. Sob Unix, ele é o login atual. Sob ODBC
              no Windows, o usuário atual deve ser especificado
              explicitamente. See Secção 12.2.2, “Como Preencher os Vários Campos no Programa de Administração do ODBC”.
            
              O parâmetro passwd contém a senha
              para user. Se passwd
              é NULL, somente entradas na tabela
              user para usuários que tenham campo de
              senha em branco (vazia) serão verificados ipor um padrão
              coincidenete. Isto permite que o admistrador do banco de
              dados configure o sistema de privilégios do MySQL de tal
              maneira que usuários os usuários conseguirão privileios
              diferentes, dependendo se ele espcificou ou não uma
              senha.
            
              Nota: Não tente criptografar a senha antes de chamar
              mysql_real_connect(); senhas
              criptografadas são tratadas automaticamente pela API
              cliente.
            
              db é o nome de banco de dados. Se
              db não é NULL, a
              conexão definirá o banco de dados padrão com este
              valor.
            
              Se port não é 0, o valor será usado
              como o número da porta para as conexões TCP/IP. Note que
              o parâmetro host determina o tipo da
              conexão.
            
              Se unix_socket não é
              NULL, a string especifica o socket ou
              named pipe que deve ser usado. Note que o parâmetro
              host determina o tipo de conexão.
            
              O valor de client_flag é normalmente
              0, mas pode ser definido como uma combinação dos
              parâmetro seguintes em circunstâncias especiais:
            
| Nome do parâmetro | Descrição do parâmetro | 
| CLIENT_COMPRESS | Usa protocolo compactado. | 
| CLIENT_FOUND_ROWS | Retorna o número de linhas encontradas (correspondentes a um padrão), não o número de linha efetivo. | 
| CLIENT_IGNORE_SPACE | Permite espaço depois do nome de funções. torna todos os nomes de funções palavras reservadas. | 
| CLIENT_INTERACTIVE | Permite interactive_timeoutsegundos (no lugar dewait_timeoutsegundos) de
                      inatividade antes de fechar a conexão. | 
| CLIENT_LOCAL_FILES | Habilita LOAD DATA LOCAL. | 
| CLIENT_MULTI_STATEMENTS | Diz ao servidor que o cliente pode enviar consultas multi linhas
                      (separado com ‘ ;’).
                      Se este parâmetro não está definido, consultas
                      de multil linhas está disabilitado. (Novo na
                      versão 4.1). | 
| CLIENT_MULTI_RESULTS | Diz ao servidor que o cliente pode tratar multíplos conjuntos de
                      resultados de um multi consulta ou stored
                      procedures. Isto é definido automaticamente se CLIENT_MULTI_STATEMENTSestá
                      lidado. Novo na versão 4.1. | 
| CLIENT_NO_SCHEMA | Não permite a sintaxe db_name.nome_tabela.nome_coluna.
                      Isto é para o ODBC. Ele faz com que o analizador
                      gere um erro se você utilizar aquela sintaxe. É
                      útil para achar erros em alguns programas ODBC. | 
| CLIENT_ODBC | O cliente é um cliente ODBC. Torna o mysqldmais
                      amigável ao ODBC. | 
| CLIENT_SSL | Usa SSL (protocolo criptografado). Esta opção não deve ser configuração pelo aplicativo; ele é definida internamente na biblioteca cliente. | 
Valor Retornado
          Um handle de conexão MYSQL* se a conexão
          foi obtida com sucesso, NULL se a conexão
          falhou. Para um conexão estabelecida o valor de retorn é o
          mesmo que o valor do primeiro parâmetro.
        
Erros
              CR_CONN_HOST_ERROR
            
Falhou ao conectar ao servidor MySQL.
              CR_CONNECTION_ERROR
            
Falhou ao conectar ao servidor MySQL local.
              CR_IPSOCK_ERROR
            
Falhou au criar um socket IP.
              CR_OUT_OF_MEMORY
            
Sem memória.
              CR_SOCKET_CREATE_ERROR
            
Falhou ao criar um socket Unix.
              CR_UNKNOWN_HOST
            
Falhou ao procurar o endereço IP para o nome de maquina.
              CR_VERSION_ERROR
            
              Um erro de protocolo resultou da tentativa de conexao a um
              servidor com uma biblioteca cliente que utiliza uma
              versão de protocolo diferente. Isto pode acontecer se
              você utiliza uma biblioteca cliente muito antiga para se
              conectar a um novo servidor qua não foi iniciado com a
              opção --old-protocol.
            
              CR_NAMEDPIPEOPEN_ERROR
            
Falhou ao criar um named pipe no Windows.
              CR_NAMEDPIPEWAIT_ERROR
            
Falhou ao esperar por um named pipe no Windows.
              CR_NAMEDPIPESETSTATE_ERROR
            
Falhou ao conseguir mainpulador do pipe no Windows.
              CR_SERVER_LOST
            
              Se connect_timeout > 0 e leva mais
              que connect_timeout segundos para
              conectar ao servidor ou se o servidro foi finalizado ao
              executar o init-command.
            
Exemplo
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"seu_programa");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}
          Usando mysql_options() a biblioteca MySQL
          irá ler as seções [client] e
          [seu_programa] no arquivo
          my.cnf o qual irá assegurar que seu
          programa irá funcionar, mesmo se alguem tiver configurado o
          MySQL de um modo fora do padrão.
        
          Note que sob a conexão,
          mysql_real_connect() define o parâmetro
          reconnect (parte da estrutura
          MYSQL) para um valor de
          1. Este parâmetro indica, no evento em que
          uma consulta não pode ser realizada devido a perda de
          conexão, para tentar se reconectar ao servidor antes de
          esgotar as tentativas.
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

