Opções de Linha de Comando do mysqld
Na maioria dos casos você deve gerenciar as opções do mysqld por meio dos arquivos de opções. Leia "Arquivo de Opções my.cnf".
mysqld e mysqld.server lêem opções dos grupos mysqld e server. mysqld_safe lê as opções dos grupos mysqld, server, mysqld_safe e mysqld_safe. Um servidor MariaDB embutido normalmente lê opções do grupos server, embedded e xxxxx_SERVER, onde xxxxx é o nome da aplicação.
mysqld aceita os seguintes opções de linha de comando. Aqui está uma lista das mais comuns. Para uma lista completa execute mysqld --help. As opções usadas para replicação estào listadas em uma seção separada, veja "Opções de Inicialização da Replicação".
--ansiUtilizar a sintaxe ANSI SQL no lugar da sintaxe MariaDB Leia "Executando o MariaDB no modo ANSI".
-b, --basedir=pathEncaminho para o diretório de instalação. Todos os caminhos normalmente são resolvidos em relação a este.
--big-tablesPermite grandes conjuntos de resultados salvando todos os conjuntos temporários em um arquivo. Ele resolve a maioria dos erros 'table full', mas também abaixa a velocidade das consultas nas quais as tabelas em memória seriam suficientes. Desde a Versão 3.23.2, o MariaDB é capaz de resolver isto automaticamente usando memória para pequenas tabelas temporárias e trocando para o disco as tabelas, quando for necessário.
--bind-address=IPEndereço IP para ligar.
--consoleGrava a mensagem de erro no stderr/stdout mesmo se
--log-erroré espeficado. No Windows o mysqld não fechará a tela de console se esta opção é usada.--character-sets-dir=pathDiretório onde estão os conjuntos de caracteres. Leia "O Conjunto de Caracteres Utilizado para Dados e Ordenação".
--chroot=pathColoca o daemon
mysqldno diretorio chroot durante a inicialização. Medida de segurança recomendada desde o MariaDB (MySQL 3.23 não está apto a fornecer um chroot 100% fechado. Limita os comandosLOAD DATA INFILEeSELECT ... INTO OUTFILE.--core-fileGrava um arquivo core se o
mysqldmorrer. Para alguns sistemas você deve também especificar--core-file-sizeparamysqld_safe. Leia "mysqld-safe, o wrapper domysqld". Note que em alguns sistemas, como Solaris, você não consiguirá um arquivo core se você também estiver usando a opção--user.-h, --datadir=caminhoEncaminha para o diretório raiz dos bancos de dados.
--debug[...]=Se o MariaDB está configurado com
--with-debug, você pode usar esta opção para obter um arquivo de rastreamento indicando o que omysqldestá fazendo. Leia Seção E.1.2, "Criando Arquivos Trace (Rastreamento)".--default-character-set=conjunto_caracterConfigura o conjunto de caracteres padrão. Leia "O Conjunto de Caracteres Utilizado para Dados e Ordenação".
--default-table-type=tipoConfigura o tipo de tabela padrão. Leia Tipos de Tabela do MariaDB.
--delay-key-write[= OFF | ON | ALL]Como o
DELAYED KEYSdo MyISAM deve ser usado. Leia "Parâmetros de Sintonia do Servidor".--delay-key-write-for-all-tables; No MariaDB 4.0.3 você deve usar --delay-key-write=ALL.Não descarrega buffers das chaves entre escritas em nenhuma tabela
MyISAM. Leia "Parâmetros de Sintonia do Servidor".--des-key-file=filenameRead the default keys used by
DES_ENCRYPT()andDES_DECRYPT()from this file.--enable-external-locking (era --enable-locking)Habilita o bloqueio do sistema. Perceba que se usar esta opção em um sistema que não possui um lockd() completamente funcional (como no Linux) você pode fazer com que o mysqld entre em deadlock.
--enable-named-pipeHabilita suporte para named pipes (somente no NT/Win2000/XP).
-T, --exit-infoEsta é uma máscara binária com diferêntes parâmetros que pode ser usada para depurar o servidor mysqld; Esta opção não deve ser usada por alguém que não a conheça muito bem!
--flushAtualiza todas as alterações no disco depois de cada comando SQL. Normalmente o MariaDB só faz a escrita de todas as alterações no disco depois de cada comando SQL e deixa o sistema operacional lidar com a sincronização com o disco. Leia Seção A.4.1, "O Que Fazer Se o MariaDB Continua Falhando".
-?, --helpMostra uma pequena ajuda e sai.
--init-file=arquivoLê comandos SQL do arquivo especificado na inicialização.
-L, --language=...Mensagens de erro do cliente na língua especificada. Pode ser fornecido como um caminho completo. Leia "Mensagens de Erros em Outras Línguas".
-l, --log[=arquivo]Log de conexões e consultas ao arquivo. Leia "O Log de Consultas".
--log-bin=[arquivo]Registra todas as consultas que alteram dados em arquivo. Usado para backup e replicação. Leia "O Log Binário".
--log-bin-index[=arquivo]Arquivo de índice para nomes de arquivos de log binario. Leia "O Log Binário".
--log-error[=arquivo]Registra mensagens de erro e inicialização neste arquivo. Leia "O Log de Erros".
--log-isam[=arquivo]Log de todas alterações ISAM/MyISAM no arquivo (usado somente quando estiver depurando bancos ISAM/MyISAM).
--log-long-formatRegistra algumas informações extras nos aruivos de log (log de atualizações, log binário de atualizações e log de consultas lentas, independente de qual está ativado). Por exemplo, nome do usuário e timestamp são registrados para a consulta. Se você estiver usando
--log-slow-queriese--log-long-format, então consultas que não estão usando índices são registradas ao log de consultas lentas. Note que--log-long-formatestá obsoleto a partir do MariaDB versão 4.1, quando--log-short-formatfoi introduzido (--log-long-formaté a configuração padrão desde a versão 4.1). Note também que a partir do MariaDB, a opção--log-queries-not-using-indexesestá disponível para propósito de registro de consultas que não usam índices para o log de consultas lentas.--log-queries-not-using-indexesSe você estiver usando
--log-slow-queries, então consultas que não estão usando índices estão registradas no log de consultas lentas. Esta opções está disponível a partir do MariaDB 4.1. Leia "O Log para Consultas Lentas".--log-short-formatRegistra menos informações extras nos aruivos de log (log de atualizações, log binário de atualizações e log de consultas lentas, independente de qual está ativado). Por exemplo, nome do usuário e timestamp são registrados para a consulta. Esta opção foi introduzida no MariaDB 4.1.
--log-slow-queries[=arquivo]Log de todas as consultas que levam mais de
long_query_timesegundos de execução para um arquivo. Note que o padrão para a quantidade de informação registrada alterou no MariaDB 4.1. Veja as opções--log-long-formate--log-long-formatpara mais detalhes. Leia "O Log para Consultas Lentas".--log-update[=arquivo]Log de atualizações para
file.#onde#é um número único se não for fornecido. Leia "O Log de Atualizações". O log de atualização estáobsoleto e será removido no MariaDB 5.0; você deve usar o log binário em seu lugar (--log-bin). Leia "O Log Binário". A partir da versão 5.0, usar--log-updateapenar ligará o log binário.--low-priority-updatesOperações de alterações das tabelas (
INSERT/DELETE/UPDATE) irão ter prioridade menor do que as selects. Isto também pode ser feito usando{INSERT | REPLACE | UPDATE | DELETE} LOW_PRIORITY ...para baixar a prioridade de somente uma consulta, ouSET OPTION SQL_LOW_PRIORITY_UPDATES=1para alterar a prioridade em uma única thread. Leia "Detalhes sobre Lock de Tabelas".--memlockBloqueia o processo
mysqldna memória. Isto funciona somente se o seu sistema suportar a chamada de sistemamklockall()(como no Solaris). Isto pode ajudar se você tiver um problema no qual o sistema operacional faz com que omysqldfaça a troca em disco. Note que o uso desta opção exige que você execute o servidor comoroot, que normalmente não é uma boa idéia por razões de segurança.--myisam-recover [=opção[,opção...]]] onde opção é qualquer combinaçãode
DEFAULT,BACKUP,FORCEouQUICK. Você também pode configurar isto explicitamente para''se você deseja desabilitar esta opção. Se esta opção for usada, omysqldirá conferir na abertura se a tabela está marcada como quebrada ou se a tabela não foi fechada corretamente. (A última opção funciona somente se você estiver executando com--skip-locking). Se este for o casomysqldirá executar uma conferência na tabela. Se a tabela estiver corrompida, omysqldirá tentar repará-la.As seguintes opções afetam no funcionamento da reparação.
Opção Descrição DEFAULT O mesmo que não fornecer uma opção para --myisam-recover.BACKUP Se os dados da tabela foram alterados durante a recuperação, salve um backup do arquivo de dados nome_tabela.MYDcomonome_tabela_dia_hora.BAK.FORCE Execute a recuperação mesmo se perdermos mais de uma linha do arquivo .MYD. QUICK Não confira as linhas na tabela se não existir nenhum bloco apagado. Antes da tabela ser reparada automaticamente, o MariaDB irá adicionar uma nota no log de erros. Se você desejar que a recuperação da maioria dos problemas não tenha a intervenção de algum usuário, devem ser usadas as opções
BACKUP,FORCE. Isto irá forçar um reparo de uma tabela mesmo se alguns registros forem apagados, mas ele manterá o arquivo de dados antigo como um backup para que você possa examinar posteriormente o que aconteceu.--newA partir da versão 4.0.12, a opção
--newpode ser usada para fazer o servidor se comportar como 4.1 em certos aspectos, facilitando a atualização da versão 4.0 para 4.1:TIMESTAMPé retornado com uma string com o formato'YYYY-MM-DD HH:MM:SSS. Leia "Tipos de Campos".
--pid-file=caminhoEncaminha para o arquivo pid usado pelo
mysqld_safe.-P, --port=...Número da porta para conexões TCP/IP.
-o, --old-protocolUtilize o protocolo 3.20 para compatibilidade com alguns clientes muito antigos. Leia "Atualizando da versão 3.20 para 3.21".
--one-threadUsa somente uma thread (para depuração sobre Linux). Esta opção está disponível apenas se o servidor está construído com a depuração habilitada. Leia Seção E.1, "Depurando um Servidor MySQL".
--open-files-limit=Para alterar o número de descritores de arquivos disponíveis para o
mysqld. Se isto não estiver configurado com 0, então omysqldusará este valor para reservar descritores de arquivos para usar comsetrlimit(). Se este valor é 0 então omysqldreservarámax_connections*5oumax_connections + table_cache*2(que é sempre é maior) número de arquivos. Você deve tentar aumentar isto se omysqldlhe retornar o erro 'Too many open files'.-O, --set-variable=name=valueFornece um valor para uma variável.
--helplista as variáveis. Você pode encontrar uma descrição completa para todas as variáveis na seçãoSHOW VARIABLESdeste manual. Leia "SHOW VARIABLES". A seção de sintonia dos parâmetros do servidor inclui informações sobre como otimizá-los. Por favor, note que--set-variable=name=valuee-O name=valueestão obsoletos desde o MariaDB 4.0, apenas use--var=opção. Leia "Parâmetros de Sintonia do Servidor".No MariaDB 4.0.2 pode-se definir uma variável diretamente com
--variable-name=opçãoeset-variablenão é mais preciso no arquivo de opções.Se você quiser restringir o valor máximo uma opção de inicialização pode ser definida com
SET, você pode definí-la usando a opção de linha de comando--maximum-variable-name. Leia "Sintaxe deSET".Note que quando um valor é atribuído a uma variável, o MariaDB pode carrigí-lo automaticamente para permanecer dentro de uma faixa dada e também ajusta o valor um pouco para corrigir para o algoritmo usado.
--safe-modeSalta alguns estágios de otimização.
--safe-show-databaseCom esta opção, o comando
SHOW DATABASESretorna apenas aqueles bancos de dados para os quais o usuário tem algum tipo de privilégio. Desde a versão 4.0.2 esta opção esta obsoleta e não faz nada (a opção está habilitada por padrão) já que agora temos o privilégioSHOW DATABASES. Leia "A Sintaxe deGRANTeREVOKE".--safe-user-createSe isto estiver ativo, um usuário não pode criar novos usuários com o comando GRANT, se o usuário não ter o privilégio de
INSERTna tabelamysql.userou em alguma coluna desta tabela.--skip-bdbDisabilita o uso de tabelas BDB. Isto economizará memória e pode aumentar a velocidade de algumas operações.
--skip-concurrent-insertDesliga a habilidade de selecionar e inserir ao mesmo tempo em tabelas
MyISAM. (Isto só é usado se você achar que encontrou um erro neste recurso).--skip-delay-key-write;No MariaDB 4.0.3 você deve usar --delay-key-write=OFF. Ignore a opção
DELAY_KEY_WRITEpara todas as tabelas. Leia "Parâmetros de Sintonia do Servidor".--skip-grant-tablesEsta opção faz com que o servidor não use o sistema de privilégio. Isto dá a todos acesso pleno a todos os bancos de dados! (Você pode dizer a um servidor em execução para iniciar a usar as tabelas de permissão novamente executando
mysqladmin flush-privilegesoumysqladmin reload.)--skip-host-cacheNunca utiliza cache para nomes de máquina para resoluções de nomes mais rápidos, mas pesquisa o servidor DNS em todas conexões. Leia "Como o MariaDB Utiliza o DNS".
--skip-innodbDisabilita o uso de tabelas Innodb. Isto irá economizar memória, espaço em disco e aumentar a velocidade de algumas operações.
--skip-external-locking (era --skip-locking)Não utilizar bloqueio de sistema. Para usar
isamchkoumyisamchkvocê deve desligar o servidor. Leia "Estabilidade do MariaDB". Perceba que na Versão 3.23 do MariaDB pode ser usadoREPAIReCHECKpara reparar/conferir tabelasMyISAM.--skip-name-resolveNomes de máquinas não são resolvidos. Todos os valores da coluna
Hostnas tabelas de permissões devem conter números IP oulocalhost. Leia "Como o MariaDB Utiliza o DNS".--skip-networkingNão escutair conexões TCP/IP. Toda interação com
mysqlddeve ser feito através de named pipes ou sockets Unix. Esta opção é altamente recomendada para sistemas onde requisições locais são permitidas. Leia "Como o MariaDB Utiliza o DNS".--skip-newNão utilizar rotinas novas, possívelmente erradas.
--skip-symlinkOpção obsoleta a partir da 4.0.13; use
--skip-symbolic-linksem seu lugar.--symbolic-links, --skip-symbolic-linksHabilita ou desabilita suporte a link simbólico. Esta opção tem efeitos diferentes no Windows e Unix.
No Windows, habilitar links simbílicos lhe permite estabelecer um link simbólico a um diretório de banco de dadosi criando um arquivo
directory.symque contém o caminho para o diretório real. Leia "Usando Links Simbólicos para Bancos de Dados no Windows".No Unix, habilitar links simbólicos, significa que você pode ligar uma tabela MyISAM ou um arquivo de dados em outro dirtório com as opções
INDEX DIRECTORYouDATA DIRECTORYda instruçãoCREATE TABLE. Se você deletar ou renomear a tabela, os arquivos para o qual o link simbólico aponta também será deletado/renomeado.--skip-safemallocSe o MariaDB é configurado com
--with-debug=full, todos os programas verificam a memória por erros para cada operação de alocação e liberação de memória. Esta consistência é muito lenta, assim para o servidor você pode evitá-la, quando você não precisar dela usando a opção--skip-safemalloc.--skip-show-databaseNão permite o comando 'SHOW DATABASE', a menos que o usuário tenha privilégio SHOW DATABASES.
--skip-stack-traceNão gravar os rastreamentos de pilha. Esta opção é útil quando você estiver executando o
mysqldsob um depurador. El alguns sistemas você também deve usar esta opção para conseguir um arquivo core. Leia Seção E.1, "Depurando um Servidor MySQL".--skip-thread-priorityDesabilita o uso de prioridade das threads para um tempo de resposta mais rápido.
--socket=pathNo Unix, o arquivo socket para usar em conexões locais no lugar do padrão
/tmp/mysql.sock. No Windows, o nome do pipe para usar em conexões locais que usam named pipe (padrãoMariaDB).--sql-mode=value[,value[,value...]]Os valores de opção pode ser qualquer combinação de:
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,NO_UNSIGNED_SUBTRACTION,NO_AUTO_VALUE_ON_ZERO,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_DIR_IN_CREATE,MYSQL323,MYSQL40,DB2,MAXDB,MSSQL,ORACLE,POSTGRESQL, ouANSI. O valor também pode ficar vazio (--sql-mode='') se você desejar limpá-la.NO_AUTO_VALUE_ON_ZEROafeta o tratamento de colunasAUTO_INCREMENT. Normalmente, você gera a próxima sequência de números da coluna inserindoNULLou0nela.NO_AUTO_VALUE_ON_ZEROomite este comportamento para0, assim apenasNULLgera a próxima sequência de números. Este modo pode ser útil se0foi armazenado em uma colunaAUTO_INCREMENTda tabela (isto não é recomendado). Por exemplo, se você fizer um dumpo de uma tabela commysqldumpe então recarregá-la, normalmente o MariaDB ira gerar uma nova sequência de números quando encontrar valores0, resultando em uma tabela com conteúdo diferente daquele do qual foi feito o dump. HabilitandoNO_AUTO_VALUE_ON_ZEROantes de recarregar o arquivo de dump soluciona este problema. (A partir do MariaDB, quando este valor se tornar disponível, omysqldumpinclui automaticamente a saída do dump para habilitarNO_AUTO_VALUE_ON_ZERO.)Diversos dos valores de opção são usados para compatibilidade com outros servidores. Se especificado, eles fazer o servidor omitir da saída de
SHOW CREATE TABLEaquelas partes da instrução que não são entendidas pelas versões anteriores do MariaDB ou outros servidores de banco de dados. Usar estes valores de opções resulta em instruçõesCREATE TABLEque são mais portáveis para usar com outros servidores:- Os valores
NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_DIR_IN_CREATE, eNO_KEY_OPTIONScausam a omissão da tabela de opções, ou opções pertencentes a definição de colunas ou índices. - Os valroes
MYSQL323eMYSQL40são para compatibilidade com o MariaDB 3.23 e MariaDB 4.0. - O valor usado para compatibilidade com outros servidores são
DB2,MAXDB,MSSQL,ORACLE, ePOSTGRESQL.
Estas opções também afetam a saída do
mysqldump, porque este programa usaSHOW CREATE TABLEpara obter a instrução de criação da tabela a qual ele inclue em sua própria saída.Diversos valores de opções podem ter um efeito complexo porque eles são atalhos para um grupo ou conjunto de valores. Por exemplo, você pode dizer ao servidor para executar em modo ANSI usando a opção
--sql-mode=ansi(ou--ansi), que é equivalente a especificar ambas das seguintes opções de linhas de comando:--sql-mode=REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY --transaction-isolation=SERIALIZABLE
Note que especificar o modo ANSI desta forma também tem o efeito de configurar o nível de isolação da transação.
Para mais informações sobre executar o servidor em modo ANSI, veja "Executando o MariaDB no modo ANSI".
Outros valores de
grupos
sãoDB2,MAXDB,MSSQL,ORACLE, ePOSTGRESQL. Esepcificar qualquer um dele ativa os valoresPIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS, eNO_KEY_OPTIONS.A opção
--sql-modefoi adicionada no MariaDB 3.23.41. O valorNO_UNSIGNED_SUBTRACTIONfoi adicionado na versão 4.0.0.NO_DIR_IN_CREATEfoi adicionado na versão 4.0.15.NO_AUTO_VALUE_ON_ZERO,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,MYSQL323,MYSQL40,DB2,MAXDB,MSSQL,ORACLE,POSTGRESQL, eANSIforam adicionados na versão 4.1.1.- Os valores
--temp-poolUsar esta opção fará com que a maioria dos arquivos temporários criados pelo servidor para usarem um pequeno conjunto de nomes, em vez de um único nome para cada novo arquivo. Isto é para contornar um problema no kernel do Linux ao tratar com a criação de muitos arquivos novos com nomes diferentes. Com o comportamento antigo, o Linux parece ter
perda
de memória, já que ela é alocada na cache de entrada do diretório em vez da cache de disco.--transaction-isolation={ READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE }Configura o nível de isolação da transação padrão. Leia "Sintaxe
SET TRANSACTION".-t, --tmpdir=pathCaminho do diretório usado para criar os arquivos temporários. Ele pode ser útil se o seu diretório padrão
/tmpestá em uma partição muito pequena para armazenar tabelas temporárias. A partir do MariaDB, esta opção aceita diversos caminhos usados do modo round-robin. Os caminhos devem ser separados por dois pontos (:) (ponto e vírgula (;) no Windows). Eles serão usados de acordo com o método round-robin.-u, --user=[nome_usuário | id_usuário]Executar o servidor
mysqldcomo o usuárionome_usuárioouid_usário(numérica). (User
neste contexto se refere a conta de login do sistema, não um usuário MariaDB listado na tabela de permissões.)Esta opção é obrigatória quando o
mysqldé iniciado como usuárioroot. O servidor irá alterar o ID do usuário durante sua inicialização, fazendo com que ele seja executado como este usuário particular em vez deroot. Leia "Como Tornar o MariaDB Seguro contra Crackers".A partir do MariaDB 3.23.56 e 4.0.12: Para evitar um possível furo na segurança onde um usuário adiciona uma opção
--user=roota algum arquivomy.cnf(fazendo o servidor executar comoroot, omysqldusa apenas a primeira opção--userespecificada e produz um aviso se houver múltiplas opções--user.As opções em
/etc/my.cnfedatadir/my.cnfsão processadas antes de uma opção de linha de comando, assim é recomendado que você coloque uma opção--userem/etc/my.cnfe especifique um outro valor diferente deroot. A opção em/etc/my.cnfserá encontrada antes de qualques outra opção--user, o que assegura que o servidor não execute comoroot, e que um aviso seja exibido se qualquer outra opção--userfor encontrada.-V, --versionMostra a informação da versão e sai.
-W, --log-warningsImprime avisos como
Aborted connection...no arquivo.err. É recomendável habilitar esta opção, por exemplo, se você estiver usando replicação (você obterá a mensagem sobre o que está acontecendo como falhas de rede e reconexões). Leia Seção A.2.10, "Erros de Comunicação / Comunicação Abortada".Esta opção se chamava
--warnings.
Pode se alterar a maioria dos valores de um servidor em execução com o comnado SET. Leia "Sintaxe de SET".