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".
--ansi
Utilizar a sintaxe ANSI SQL no lugar da sintaxe MariaDB Leia "Executando o MariaDB no modo ANSI".
-b, --basedir=path
Encaminho para o diretório de instalação. Todos os caminhos normalmente são resolvidos em relação a este.
--big-tables
Permite 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=IP
Endereço IP para ligar.
--console
Grava 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=path
Diretório onde estão os conjuntos de caracteres. Leia "O Conjunto de Caracteres Utilizado para Dados e Ordenação".
--chroot=path
Coloca o daemon
mysqld
no 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 INFILE
eSELECT ... INTO OUTFILE
.--core-file
Grava um arquivo core se o
mysqld
morrer. Para alguns sistemas você deve também especificar--core-file-size
paramysqld_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=caminho
Encaminha 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 omysqld
está fazendo. Leia Seção E.1.2, "Criando Arquivos Trace (Rastreamento)".--default-character-set=conjunto_caracter
Configura o conjunto de caracteres padrão. Leia "O Conjunto de Caracteres Utilizado para Dados e Ordenação".
--default-table-type=tipo
Configura o tipo de tabela padrão. Leia Tipos de Tabela do MariaDB.
--delay-key-write[= OFF | ON | ALL]
Como o
DELAYED KEYS
do 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=filename
Read 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-pipe
Habilita suporte para named pipes (somente no NT/Win2000/XP).
-T, --exit-info
Esta é 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!
--flush
Atualiza 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".
-?, --help
Mostra uma pequena ajuda e sai.
--init-file=arquivo
Lê 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-format
Registra 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-queries
e--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-format
está obsoleto a partir do MariaDB versão 4.1, quando--log-short-format
foi 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-indexes
está disponível para propósito de registro de consultas que não usam índices para o log de consultas lentas.--log-queries-not-using-indexes
Se 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-format
Registra 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_time
segundos 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-format
e--log-long-format
para 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-update
apenar ligará o log binário.--low-priority-updates
Operaçõ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=1
para alterar a prioridade em uma única thread. Leia "Detalhes sobre Lock de Tabelas".--memlock
Bloqueia o processo
mysqld
na 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 omysqld
faç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ção
de
DEFAULT
,BACKUP
,FORCE
ouQUICK
. Você também pode configurar isto explicitamente para''
se você deseja desabilitar esta opção. Se esta opção for usada, omysqld
irá 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 casomysqld
irá executar uma conferência na tabela. Se a tabela estiver corrompida, omysqld
irá 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.MYD
comonome_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.--new
A partir da versão 4.0.12, a opção
--new
pode 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=caminho
Encaminha para o arquivo pid usado pelo
mysqld_safe
.-P, --port=...
Número da porta para conexões TCP/IP.
-o, --old-protocol
Utilize o protocolo 3.20 para compatibilidade com alguns clientes muito antigos. Leia "Atualizando da versão 3.20 para 3.21".
--one-thread
Usa 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 omysqld
usará este valor para reservar descritores de arquivos para usar comsetrlimit()
. Se este valor é 0 então omysqld
reservarámax_connections*5
oumax_connections + table_cache*2
(que é sempre é maior) número de arquivos. Você deve tentar aumentar isto se omysqld
lhe retornar o erro 'Too many open files'.-O, --set-variable=name=value
Fornece um valor para uma variável.
--help
lista as variáveis. Você pode encontrar uma descrição completa para todas as variáveis na seçãoSHOW VARIABLES
deste 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=value
e-O name=value
estã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ção
eset-variable
nã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-mode
Salta alguns estágios de otimização.
--safe-show-database
Com esta opção, o comando
SHOW DATABASES
retorna 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 deGRANT
eREVOKE
".--safe-user-create
Se 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
INSERT
na tabelamysql.user
ou em alguma coluna desta tabela.--skip-bdb
Disabilita o uso de tabelas BDB. Isto economizará memória e pode aumentar a velocidade de algumas operações.
--skip-concurrent-insert
Desliga 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_WRITE
para todas as tabelas. Leia "Parâmetros de Sintonia do Servidor".--skip-grant-tables
Esta 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-privileges
oumysqladmin reload
.)--skip-host-cache
Nunca 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-innodb
Disabilita 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
isamchk
oumyisamchk
você deve desligar o servidor. Leia "Estabilidade do MariaDB". Perceba que na Versão 3.23 do MariaDB pode ser usadoREPAIR
eCHECK
para reparar/conferir tabelasMyISAM
.--skip-name-resolve
Nomes de máquinas não são resolvidos. Todos os valores da coluna
Host
nas tabelas de permissões devem conter números IP oulocalhost
. Leia "Como o MariaDB Utiliza o DNS".--skip-networking
Não escutair conexões TCP/IP. Toda interação com
mysqld
deve 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-new
Não utilizar rotinas novas, possívelmente erradas.
--skip-symlink
Opção obsoleta a partir da 4.0.13; use
--skip-symbolic-links
em seu lugar.--symbolic-links, --skip-symbolic-links
Habilita 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.sym
que 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 DIRECTORY
ouDATA DIRECTORY
da 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-safemalloc
Se 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-database
Não permite o comando 'SHOW DATABASE', a menos que o usuário tenha privilégio SHOW DATABASES.
--skip-stack-trace
Não gravar os rastreamentos de pilha. Esta opção é útil quando você estiver executando o
mysqld
sob 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-priority
Desabilita o uso de prioridade das threads para um tempo de resposta mais rápido.
--socket=path
No 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_ZERO
afeta o tratamento de colunasAUTO_INCREMENT
. Normalmente, você gera a próxima sequência de números da coluna inserindoNULL
ou0
nela.NO_AUTO_VALUE_ON_ZERO
omite este comportamento para0
, assim apenasNULL
gera a próxima sequência de números. Este modo pode ser útil se0
foi armazenado em uma colunaAUTO_INCREMENT
da tabela (isto não é recomendado). Por exemplo, se você fizer um dumpo de uma tabela commysqldump
e 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_ZERO
antes de recarregar o arquivo de dump soluciona este problema. (A partir do MariaDB, quando este valor se tornar disponível, omysqldump
inclui 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 TABLE
aquelas 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 TABLE
que são mais portáveis para usar com outros servidores:- Os valores
NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
,NO_DIR_IN_CREATE
, eNO_KEY_OPTIONS
causam a omissão da tabela de opções, ou opções pertencentes a definição de colunas ou índices. - Os valroes
MYSQL323
eMYSQL40
sã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 TABLE
para 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-mode
foi adicionada no MariaDB 3.23.41. O valorNO_UNSIGNED_SUBTRACTION
foi adicionado na versão 4.0.0.NO_DIR_IN_CREATE
foi 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
, eANSI
foram adicionados na versão 4.1.1.- Os valores
--temp-pool
Usar 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=path
Caminho do diretório usado para criar os arquivos temporários. Ele pode ser útil se o seu diretório padrão
/tmp
está 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
mysqld
como o usuárionome_usuário
ouid_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=root
a algum arquivomy.cnf
(fazendo o servidor executar comoroot
, omysqld
usa apenas a primeira opção--user
especificada e produz um aviso se houver múltiplas opções--user
.As opções em
/etc/my.cnf
edatadir/my.cnf
são processadas antes de uma opção de linha de comando, assim é recomendado que você coloque uma opção--user
em/etc/my.cnf
e especifique um outro valor diferente deroot
. A opção em/etc/my.cnf
será 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--user
for encontrada.-V, --version
Mostra a informação da versão e sai.
-W, --log-warnings
Imprime 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
".