Configurações em Execução
O comportamento destas funções é afetado pelas configurações do php.ini.
Nome | Padrão | Modificável | Registro de Alterações |
---|---|---|---|
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
|
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
|
mysqlnd.debug | "" | INI_SYSTEM |
|
mysqlnd.log_mask | 0 | INI_ALL |
|
mysqlnd.mempool_default_size | 16000 | INI_ALL |
|
mysqlnd.net_read_timeout | "86400" | INI_ALL |
Antes do PHP 7.2.0 o padrão era "31536000"
e a mutabilidade era INI_SYSTEM
|
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
|
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
|
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
|
mysqlnd.trace_alloc | "" | INI_SYSTEM |
|
mysqlnd.fetch_data_copy | 0 | INI_ALL |
Removida a partir do PHP 8.1.0 |
Aqui está uma breve explicação das diretivas de configuração.
-
mysqlnd.collect_statistics
bool -
Permite a coleta de várias estatísticas de clientes que podem ser acessadas através de mysqli_get_client_stats() e mysqli_get_connection_stats() e também são mostradas na seção
mysqlnd
da saída da função phpinfo().Esta configuração ativa todas as estatísticas do Driver Nativo MySQL exceto aquelas relacionadas ao gerenciamento de memória.
-
mysqlnd.collect_memory_statistics
bool -
Permite a coleta de várias estatísticas de clientes que podem ser acessadas através de mysqli_get_client_stats() e mysqli_get_connection_stats() e também são mostradas na seção
mysqlnd
da saída da função phpinfo().Esta definição de configuração ativa as estatísticas de gerenciamento de memória dentro do conjunto geral de estatísticas do Driver Nativo MySQL.
-
mysqlnd.debug
string -
Grava a comunicação de todas as extenões que usam
mysqlnd
para o arquivo de registro especificado.O formato da diretiva é
mysqlnd.debug = "opção1[,parâmetro_opção1][:opção2[,parâmetro_opção2]]"
.As opções para a string de formato são as seguintes:
-
A[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado. Também garante que os dados sejam gravados após cada gravação. Isso é feito fechando e reabrindo o arquivo de rastreamento (isso é lento). Isso ajuda a garantir um arquivo de registro completo caso o aplicativo falhe.
-
a[,arquivo] - Acrescenta saída de rastreamento ao arquivo especificado.
-
d - Ativa a saída de macros DBUG_<N> para o estado atual. Pode ser seguido por uma lista de palavras-chave que seleciona a saída apenas para as macros DBUG com essa palavra-chave. Uma lista vazia de palavras-chave implica em saída para todas as macros.
-
f[,funções] - Limita as ações do depurador à lista de funções especificada. Uma lista vazia de funções implica em que todas as funções são selecionadas.
-
F - Marca cada linha de saída do depurador com o nome do arquivo de origem que contém a macro que causa a saída.
-
i - Marca cada linha de saída do depurador com o PID do processo atual.
-
L - Marca cada linha de saída do depurador com o nome do número da linha do arquivo de origem da macro que causa a saída.
-
n - Marca cada linha de saída do depurador com a profundidade de aninhamento da função atual.
-
o[,arquivo] - Similar a a[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.
-
O[,arquivo] - Similar a A[,arquivo] mas sobrescreve o arquivo antigo, e não anexa.
-
t[,N] - Ativa o rastreamento de fluxo de controle de função. A profundidade máxima de aninhamento é especificada por N e o padrão é 200.
-
x - Este opção ativa a criação de perfil de código.
-
m - Rastreia chamadas relacionadas à alocação e desalocação de memória.
Example:
d:t:x:O,/tmp/mysqlnd.trace
Note:
Este recurso está disponível apenas com uma compilação de depuração do PHP.
-
-
mysqlnd.log_mask
int -
Define quais consultas serão registradas. O padrão é 0, que desativa o registro. Defina usando um número inteiro e não com constantes PHP. Por exemplo, um valor de 48 (16 + 32) registrará consultas lentas que usam 'nenhum índice bom' (SERVER_QUERY_NO_GOOD_INDEX_USED = 16) ou nenhum índice (SERVER_QUERY_NO_INDEX_USED = 32). Um valor de 2.043 (1 + 2 + 8 + ... + 1.024) registrará todos os tipos de consulta lenta.
Os tipos são os seguintes: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2, SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32, SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256, SERVER_STATUS_NO_BACKSLASH_ESCAPES=512 e SERVER_QUERY_WAS_SLOW=1024.
-
mysqlnd.mempool_default_size
int -
Tamanho padrão do pool de memória mysqlnd, que é usado pelos conjuntos de resultados.
-
mysqlnd.net_read_timeout
int -
mysqlnd
e a Biblioteca Cliente MySQL,libmysqlclient
usam APIs de rede diferentes.mysqlnd
usa fluxos PHP, enquantolibmysqlclient
usa seus próprio encapsulador em torno das chamadas de rede de nível operacional. O PHP, por padrão, define um tempo limite de leitura de 60s para fluxos. Isso é definido via php.ini,default_socket_timeout
. Esse padrão se aplica a todos os fluxos que não definem nenhum outro valor de tempo limite.mysqlnd
não define nenhum outro valor e, portanto, conexões de consultas de longa execução podem ser desconectadas apósdefault_socket_timeout
segundos, resultando em uma mensagem de erro2006 - MySQL Server has gone away
. A biblioteca cliente MySQL define um tempo limite padrão de 24 * 3600 segundos (1 dia) e espera que outros tempos limite ocorram, como tempos limites de TCP/IP.mysqlnd
agora usa o mesmo tempo limite muito longo. O valor é configurável através de uma nova configuração php.ini:mysqlnd.net_read_timeout
.mysqlnd.net_read_timeout
é usado por qualquer extensão (ext/mysql
,ext/mysqli
,PDO_MySQL
) que usamysqlnd
.mysqlnd
diz aos fluxos PHP para usarmysqlnd.net_read_timeout
. Favor observar que pode haver diferenças sutis entreMYSQL_OPT_READ_TIMEOUT
da Biblioteca Cliente MySQL e fluxos PHP, por exemploMYSQL_OPT_READ_TIMEOUT
está documentado para funcionar apenas para conexões TCP/IP e, antes do MySQL 5.1.2, apenas para Windows. Os fluxos PHP podem não ter essa limitação. Por favor, verifique a documentação dos streams, em caso de dúvida. -
mysqlnd.net_cmd_buffer_size
int -
mysqlnd
aloca um buffer interno de comando/rede demysqlnd.net_cmd_buffer_size
(no php.ini) bytes para cada conexão. Se um comando do protocolo MySQL cliente-servidor, por exemplo,COM_QUERY
(consultanormal
), não couber no buffer,mysqlnd
aumentará o buffer ao tamanho necessário para enviar o comando. Sempre que o buffer for estendido para uma conexão,command_buffer_too_small
será incrementado em um.Se
mysqlnd
tiver que aumentar o buffer além do tamanho inicial demysqlnd.net_cmd_buffer_size
bytes para quase todas as conexões, você deve considerar aumentar o tamanho padrão para evitar realocações.O tamanho do buffer padrão é 4.096 bytes, que é o menor valor possível.
O valor também pode ser definido usando
mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size)
. -
mysqlnd.net_read_buffer_size
int -
Tamanho máximo do bloco de leitura em bytes ao ler o corpo de um pacote de comando MySQL. O protocolo cliente-servidor MySQL encapsula todos os seus comandos em pacotes. Os pacotes consistem em um pequeno cabeçalho e um corpo com a carga útil real. O tamanho do corpo está codificado no cabeçalho.
mysqlnd
lê o corpo em pedaços deMIN(header.size, mysqlnd.net_read_buffer_size)
bytes. Se o corpo de um pacote for maior quemysqlnd.net_read_buffer_size
bytes,mysqlnd
terá que chamarread()
múltiplas vezes.O valor também pode ser definido usando
mysqli_options(link, MYSQLI_OPT_NET_READ_BUFFER_SIZE, size)
. -
mysqlnd.sha256_server_public_key
string -
Relacionado ao plug-in de autenticação SHA-256. Arquivo com a chave RSA pública do servidor MySQL.
Os clientes podem omitir a configuração de uma chave RSA pública, especificar a chave através desta configuração do PHP ou definir a chave em tempo de execução usando mysqli_options(). Se nenhum arquivo de chave RSA pública for fornecido pelo cliente, a chave será trocada como parte do procedimento de autenticação padrão do plug-in de autenticação SHA-256.
-
mysqlnd.trace_alloc
string -
-
mysqlnd.fetch_data_copy
int -
Impõe cópia de conjuntos de resultados dos buffers internos do conjunto de resultados em variáveis PHP em vez de usar a referência padrão e a lógica de cópia na gravação. Por favor, veja as notas de implementação de gerenciamento de memória para mais detalhes.
Copiar conjuntos de resultados em vez de fazer referência a variáveis PHP permite liberar a memória ocupada pelas variáveis PHP anteriormente. Dependendo do código da API do usuário, das consultas reais do banco de dados e do tamanho de seus conjuntos de resultados, isso pode reduzir o consumo de memória do mysqlnd.
Não defina se estiver usando PDO_MySQL. PDO_MySQL ainda não foi atualizado para suportar o novo modo de busca.
Note: Removido a partir do PHP 8.1.0