O MySQL pode, desde a versão 3.22, ler as opções padrões de inicialização para o servidor e para clientes dos arquivos de opções.
No Windows, o MySQL lê opções padrões dos seguintes arquivos:
| Nome do Arquivo | Propósito | 
| Windows-directory\my.ini | Opções globais | 
| C:\my.cnf | Opções globais | 
        Windows-directory é a localização do seu
        diretório Windows.
      
No Unix, o MySQL lê opções padrões dos seguintes arquivos:
| Nome do arquivo | Propósito | 
| /etc/my.cnf | Opções globais | 
| DATADIR/my.cnf | Opções específicas do servidor | 
| defaults-extra-file | O arquivo especificado com --defaults-extra-file=# | 
| ~/.my.cnf | Opções específicas do usuário | 
        DATADIR é o diretório de dados do MySQL
        (normalmente /usr/local/mysql/data para
        instalações binárias ou /usr/local/var
        para instalações de código fonte). Perceba que este é o
        diretório que foi especificado na hora da configuração, não
        o especificado com --datadir quando o
        mysqld inicia! (--datadir
        não tem efeito sobre o local onde o servidor procura por
        arquivos de opções, porque ele procura pelos arquivos antes de
        processar qualquer argumento da linha de comando.)
      
        Note que no Windows, você deve especificar todos os caminhos no
        arquivo de opção com / no lugar de
        \. Se for utilizado o \,
        será necessário digitá-lo duas vezes, pois o
        \ é o caractere de escape no MySQL.
      
O MySQL tenta ler os arquivos de opções na ordem listada acima. Se múltiplos arquivos de opções existirem, uma opção especificada em um arquivo lido depois recebe a precedência sobre a mesma opção especificada em um arquivo lido anteriormente. Opções especificadas na linha de comando recebem a precedência sobre opções especificadas em qualquer arquivo de opções. Algumas opções podem ser especificadas usando variáveis de ambiente. Opções especificadas na linha de comando ou nos arquivos de opção tem precendencia sobre valores nas variáveis de ambiente. See Apêndice F, Variáveis de Ambientes do MySQL.
        Os seguintes programas suportam arquivos de opções:
        mysql, mysqladmin,
        mysqld, mysqld_safe,
        mysql.server, mysqldump,
        mysqlimport, mysqlshow,
        mysqlcheck, myisamchk, e
        myisampack.
      
        Desde a versão 4.0.2, você pode usar o prefixo
        loose para opções de linha de comando (ou
        opções no my.cnf). Se uma opção possui o prefixo
        loose, o programa que a ler não finalizará
        com um erro se uma opção for desconhecida, mas apenas enviará
        um aviso:
      
shell> mysql --loose-no-such-option
        Você pode usar arquivos de opções para especificar qualquer
        opção extendida que o programa suporte! Execute o programa com
        --help para obter uma lista das opções
        disponíveis.
      
Um arquivo de opções pode conter linhas na seguinte forma:
            #comentario
          
            Linhas de comentário iniciam com o caractere
            ‘#’ ou
            ‘;’. Comentários podem
            iniciar no meio de uma linha também. Linhas vazias são
            ignoradas.
          
            [grupo]
          
            grupo é o nome do programa ou grupo para
            o qual você irá configurar as opções. Depois de uma
            linha de grupo, qualquer linha de opção
            ou set-variable são referentes ao grupo
            até o final do arquivo de opções ou outra linha de
            início de grupo.
          
            opção
          
            Isto é equivalente à --opção na linha
            de comando.
          
            opção=valor
          
            Isto é equivalente à --opção=valor na
            linha de comando. Por favor, note que você deve colocar um
            argumento entre aspas duplas, se o argumento de uma opção
            conter um caracter de comentário.
          
            set-variable = nome=valor
          
            Isto é equivalente à --set-variable
            nome=valor na linha de comando.
          
            Por favor, notem que --set-variable está
            obsoleto desde o MySQL 4.0; a partir desta versão os nomes
            das variáveis de programa podem ser usados como nome de
            opções. Na linha de comando, use apenas
            --nome=valor. Em um arquivo de opção, use
            nome=valor.
          
        O grupo [client] permite especificar opções
        para todos clientes MySQL (não o mysqld).
        Este é o grupo perfeito de se usar para espeficar a senha que
        você usa para conectar ao servidor. (Mas tenha certeza que o
        arquivo de opções só pode ser lido e gravado por você)
      
        Se você quiser criar opções que devem ser lidas por uma
        versão específica do servidor mysqld você
        pode fazer isto com [mysqld-4.0],
        [mysqld-4.1] etc:
      
[mysqld-4.0] new
A nova opção acima só será usada com o versões 4.0.x do servidor MySQL.
        Perceba que para opções e valores, todos espaços em branco
        são automaticamente apagados. Você pode usar a sequencia de
        escape '\b', '\t',
        '\n', '\r',
        '\\' e '\s' no valor da
        string ('\s' == espaço).
      
Aqui está um típico arquivo de opções globais.
[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock set-variable = key_buffer_size=16M set-variable = max_allowed_packet=1M [mysqldump] quick
Aqui está um típico arquivo de opções do usuário
[client] # A senha seguinte será enviada para todos clientes MySQL password="minha_senha" [mysql] no-auto-rehash set-variable = connect_timeout=2 [mysqlhotcopy] interactive-timeout
        Se você tem uma distribuição fonte, você encontrará
        arquivos de exemplo de configuração chamados
        my-xxxx.cnf no diretório
        support-files. Se você tem uma
        distribuição binária olhe no diretório de instalação
        DIR/support-file, onde
        DIR é o caminho para o diretório de
        instalação (normalmente C:\mysql ou
        /usr/local/mysql). Atualmente existem
        arquivos de configuração para sistemas pequenos, médios,
        grandes e enormes. Você pode copiar
        my-xxxx.cnf para seu diretório home
        (renomeie a cópia para .my.cnf para
        experimentar.
      
Todos os programas MySQL que suportam arquivos de opções aceitam opções:
| Opção | Descrição | 
| --no-defaults | Não lê nenhum arquivo de opções. | 
| --print-defaults | Imprima o nome do programa e todas opções. | 
| --defaults-file=caminho-para-arquivo-padrão | Utilize somente o arquivo de configuração específicado. | 
| --defaults-extra-file=caminho-para-arquivo-padrão | Leia este arquivo de configuração depois do arquivo de configuração global mas antes do arquivo de configuração do usuário. | 
        Perceba que as opções acima devem vir primeiro na linha de
        comando para funcionar, com exceção que
        --print-defaults deve ser usado logo depois dos
        comandos --defaults-file ou
        --defaults-extra-file.
      
Notas para desenvolvedores: O tratamento de arquivos de opções é implementado simplesmente processando todos as opções coincidentes (isto é, opções no grupo apropriado) antes de qualquer argumento da linha de comando. Isto funciona bem para programas que usam a última instância de uma opção que é especificada diversas vezes. Se você tem um programa antigo que trata opções especificadas várias vezes desta forma mas não lê arquivos de opções, você só precisa adicionar duas linhas para lhe dar esta capacidade. Verifique o código fonte de qualquer um dos clientes MySQL padrão para ver como fazer isto.
        Nos scripts shell você pode usar o comando
        my_print_defaults para analisar os arquivos
        de opção. O seguinte exemplo mostar a saída que
        my_print_defaults pode produzir quando quando
        pedido para mostrar as opções encontradas nos grupos
        [client] e [mysql]:
      
shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
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.

