Bem-vindo(a) à documentação do phpMyAdmin!¶
Conteúdo:
Introdução¶
phpMyAdmin é uma ferramenta de software livre escrita em PHP que se destina a lidar com a administração de um servidor de banco de dados MySQL ou MariaDB. Você pode usar o phpMyAdmin para executar a maioria das tarefas de administração, incluindo a criação de um banco de dados, a execução de consultas e a adição de contas de usuários.
Funções suportadas¶
Atualmente o phpMyAdmin pode:
- criar, navegar, editar e eliminar bancos de dados, tabelas, views, colunas e índices
- mostrar múltiplos conjuntos de resultados através de procedimentos armazenados ou queries
- criar, copiar, eliminar, renomear e alterar bancos de dados, tabelas, colunas e índices
- manutenção de servidores, bancos de dados e tabelas, com propostas para configurações de servidor
- executar, editar e marcar qualquer declaração SQL, até mesmo consultas em lote
- carregar arquivos de texto em tabelas
- criar [1] e ler despejos de tabelas
- exportar [1] dados para vários formatos: CSV, XML, PDF, ISO/IEC 26300 - textos e planilhas OpenDocument, Microsoft Word 2000, e formatos LATEX
- importar dados e estruturas MySQL de planilhas OpenDocument, assim como de arquivos XML, CSV e SQL
- administrar vários servidores
- adicionar, editar e remover contas de usuário e privilégios do MySQL
- verificar a integridade referencial em tabelas MyISAM
- criar gráficos PDF do layout do seu banco de dados
- pesquisar em um banco de dados inteiro ou em apenas em uma parte
- converter dados armazenados em qualquer formato usando um conjunto de funções pré-definidas, como exibir dados armazenados no formato BLOB como imagem ou como link para download
- controlar alterações em bancos de dados, tabelas e visualizações
- suportar tabelas InnoDB e chaves estrangeiras
- suporte a mysqli, a extensão melhorada do MySQL; veja 1.17 Quais versões de bancos de dados são suportadas pelo phpMyAdmin?
- criar, editar, chamar, exportar e apagar processos e funções armazenadas
- criar, editar, exportar e apagar eventos e gatilhos
- disponível em 80 linguagens diferentes
Teclas de atalho¶
Atualmente o phpMyAdmin suporta os seguintes atalhos:
- k - Abrir consola
- h Ir à página principal
- Configurações genéricas
- d + s Seguir para a estrutura da base de dados (Assumindo que você está numa página relacionada a bases de dados)
- d + f - Procurar na base de dados (Assumindo que você está numa página relacionada a bases de dados)
- t + s - Ir para a estrutura de tabelas (Apenas estando numa página relacionada a bases de dados)
- t + f - Procurar tabela (Apenas estando numa página relacionada a bases de dados)
- backspace - Leva você a uma página anterior.
Uma palavra sobre os usuários¶
Muitas pessoas têm dificuldade em compreender o conceito de gestão de usuários em relação ao phpMyAdmin. Quando um usuário se conecta ao phpMyAdmin, o nome de usuário e a senha são passados diretamente ao MySQL. O phpMyAdmin não faz gestão de contas por si só (exceto quando é permitida a manipulação das informações da conta de usuário do MySQL); todos os usuários devem ser usuários válidos do MySQL.
Notas de rodapé
[1] | (1, 2) phpMyAdmin can compress (ZIP, GZip or RFC 1952
formats) dumps and CSV exports if you use PHP with
Zlib support (--with-zlib ).
Proper support may also need changes in php.ini . |
Requisitos¶
Servidor web¶
Considerando que a interface do phpMyAdmin funciona exclusivamente no seu navegador, você precisará de um servidor web (como o Apache nginx IIS) onde instalar os arquivos do phpMyAdmin.
PHP¶
- You need PHP 8.1.2 or newer, with
session
support, the Standard PHP Library (SPL) extension, hash, ctype, and JSON support. - A extensão
mbstring
(vide mbstring) é fortemente recomendada por questões de performance. - Para obter suporte a upload de arquivos ZIP, você precisa da extensão
zip
do PHP. - Você precisa de suporte GD2 no PHP para exibir miniaturas inline de JPEGs (“image/jpeg: inline”) com sua proporção original.
- When using the cookie authentication (the default), the openssl extension is strongly suggested.
- Para suporte a barras de progresso de upload, veja 2.9 Vendo uma barra de progresso de upload.
- To support XML and Open Document Spreadsheet importing, you need the libxml extension.
- To support reCAPTCHA on the login page, you need the openssl extension.
- To support displaying phpMyAdmin’s latest version, you need to enable
allow_url_open
in yourphp.ini
or to have the curl extension.
Banco de dados¶
O phpMyAdmin suporta bancos de dados compatíveis com o MySQL.
- MySQL 5.5 ou mais recente
- MariaDB 5.5 ou mais recente
Navegador Web¶
Para acessar o phpMyAdmin, você precisa de um navegador web com cookies e JavaScript habilitado.
You need a browser which is supported by Bootstrap 4.5, see <https://getbootstrap.com/docs/4.5/getting-started/browsers-devices/>.
Alterado na versão 5.2.0: You need a browser which is supported by Bootstrap 5.0, see <https://getbootstrap.com/docs/5.0/getting-started/browsers-devices/>.
Instalação¶
O phpMyAdmin não aplica quaisquer métodos de segurança especiais ao servidor de banco de dados MySQL. Ele ainda depende do administrador do sistema para conceder as permissões adequadas nos bancos de dados MySQL. A página Users do phpMyAdmin pode ser utilizada para isso.
Distribuições do Linux¶
O phpMyAdmin é incluído na maioria das distribuições Linux. É recomendado usar os pacotes da distribuição quando possível - eles normalmente fornecem integração com a sua distribuição e você irá receber automaticamente atualizações de segurança de sua distribuição.
Debian e Ubuntu¶
Most Debian and Ubuntu versions include a phpMyAdmin package, but be aware that
the configuration file is maintained in /etc/phpmyadmin
and may differ in
some ways from the official phpMyAdmin documentation. Specifically, it does:
- Configuração de servidor web (funciona com Apache e lighttpd).
- Criação de Armazenamento de configurações do phpMyAdmin usando dbconfig-common.
- Protegendo o script de instalação, veja Script de instalação no Debian, Ubuntu e derivativos.
More specific details about installing Debian or Ubuntu packages are available in our wiki.
Ver também
More information can be found in README.Debian
(it is installed as /usr/share/doc/phpmyadmin/README.Debian
with the package).
OpenSUSE¶
O OpenSUSE já vem com um pacote do phpMyAdmin, apenas instale os pacotes do openSUSE Build Service.
Gentoo¶
O Gentoo traz o pacote do phpMyAdmin, tanto em uma configuração de fábrica quanto um com configuração webapp-config
. Use emerge dev-db/phpmyadmin
para instalar.
Mandriva¶
O Mandriva traz o pacote do phpMyAdmin na sua branch contrib
e pode ser instalado via o Centro de Controle de sempre.
Fedora¶
O Fedora traz o pacote do phpMyAdmin, mas saiba que o arquivo de configuração é guardado em /etc/phpmyadmin/
e pode ter algumas diferenças da documentação oficial do phpMyAdmin.
Red Hat Linux Empresarial¶
Red Hat Enterprise Linux itself and thus derivatives like CentOS don’t
ship phpMyAdmin, but the Fedora-driven repository
Extra Packages for Enterprise Linux (EPEL)
is doing so, if it’s
enabled.
But be aware that the configuration file is maintained in
/etc/phpMyAdmin/
and may differ in some ways from the
official phpMyAdmin documentation.
Instalar no Windows¶
O jeito mais fácil de obter o phpMyAdmin no Windows é usar produtos de terceiros que incluem o phpMyAdmin junto com um banco de dados e servidor web como o XAMPP.
Você pode ler mais sobre essas opções na Wikipédia.
Instalando do Git¶
Para instalar a partir do Git, você precisará de alguns aplicativos de suporte:
- Git to download the source, or you can download the most recent source directly from Github
- Composer
- Node.js (version 14 or higher)
- Yarn
Você poderá clonar o código-fonte mais recente do phpMyAdmin de https://github.com/phpmyadmin/phpmyadmin.git
:
git clone https://github.com/phpmyadmin/phpmyadmin.git
Adicionalmente, você precisa instalar dependências usando o Composer:
composer update
Se você não pretende desenvolver, você pode ignorar a instalação das ferramentas de desenvolvedor invocando:
composer update --no-dev
Por fim, você precisará usar o Yarn para instalar algumas dependências de JavaScript:
yarn install --production
Instalar usando o Composer¶
Você pode instalar o phpMyAdmin usando a ferramenta Composer, desde a 4.7.0 as versões são automaticamente espelhadas para o repositório Packagist padrão.
Nota
O conteúdo do repositório Composer é automaticamente gerado separadamente das releases, portanto, o conteúdo não precisa ser 100% o mesmo de quando você baixou o tarball. Não devem haver diferenças funcionais, contudo.
Para instalar o phpMyAdmin execute:
composer create-project phpmyadmin/phpmyadmin
Alternativamente, você pode usar nosso próprio repositório composer, que contém os tarballs das releases e está disponível em <https://www.phpmyadmin.net/packages.json>:
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev
Instalar usando Docker¶
phpMyAdmin comes with a Docker official image, which you can easily deploy. You can download it using:
docker pull phpmyadmin
O servidor phpMyAdmin irá ouvir na porta 80. Ele suporta várias formas de configurar o link para o servidor de banco de dados, seja pelo recurso de link do Docker, vinculando seu container do banco de dados ao db``para o phpMyAdmin (especificando ``--link your_db_host:db
) ou por variáveis de ambiente (neste caso cabe a você configurar a rede no Docker para permitir que o container phpMyAdmin acesse o container do banco de dados através da rede).
Variáveis de ambiente do Docker¶
Você pode configurar vários recursos do phpMyAdmin usando variáveis de ambiente:
-
PMA_ARBITRARY
¶ Permite que você informe um nome de host do servidor de banco de dados no formulário de login.
Ver também
-
PMA_HOST
¶ Nome de host ou endereço IP do servidor de banco de dados a ser utilizado.
Ver também
-
PMA_HOSTS
¶ Nomes de host ou endereços IP dos servidores de banco de dados que serão utilizados, separados por vírgulas.
Nota
Usado apenas se
PMA_HOST
está vazio.
-
PMA_VERBOSE
¶ Nome extenso do servidor de banco de dados.
Ver também
-
PMA_VERBOSES
¶ Nomes extensos dos servidores de banco de dados, separados por vírgula.
Nota
Usado somente se
PMA_VERBOSE
está vazio.
-
PMA_USER
¶ Nome do usuário a ser utilizado para Modo de autenticação por configuração.
-
PMA_PASSWORD
¶ Senha a ser utilizada para Modo de autenticação por configuração.
-
PMA_PORT
¶ Porta do servidor de banco de dados a ser utilizado.
-
PMA_PORTS
¶ Portas dos servidores de banco de dados a serem utilizados, separadas por vírgula.
Nota
Usado apenas se
PMA_PORT
estiver vazio.
-
PMA_SOCKET
¶ Socket file for the database connection.
-
PMA_SOCKETS
¶ Comma-separated list of socket files for the database connections.
Nota
Used only if
PMA_SOCKET
is empty.
-
PMA_ABSOLUTE_URI
¶ O endereço qualificado (
https://pma.example.net/
) onde o proxy reverso torna o phpMyAdmin disponível.Ver também
-
PMA_QUERYHISTORYDB
¶ When set to true, enables storing SQL history to
$cfg['Servers'][$i]['pmadb']
. When false, history is stored in the browser and is cleared when logging out.Ver também
Ver também
-
PMA_QUERYHISTORYMAX
¶ When set to an integer, controls the number of history items.
Ver também
-
PMA_CONTROLHOST
¶ When set, this points to an alternate database host used for storing the “Armazenamento de configurações do phpMyAdmin” database.
Ver também
-
PMA_CONTROLUSER
¶ Defines the username for phpMyAdmin to use for the “Armazenamento de configurações do phpMyAdmin” database.
Ver também
-
PMA_CONTROLPASS
¶ Defines the password for phpMyAdmin to use for the “Armazenamento de configurações do phpMyAdmin” database.
Ver também
-
PMA_CONTROLPORT
¶ When set, will override the default port (3306) for connecting to the control host.
Ver também
-
PMA_PMADB
¶ When set, define the name of the database to be used for the “Armazenamento de configurações do phpMyAdmin” database. When not set, the advanced features are not enabled by default: they can still potentially be enabled by the user when logging in with the Configuração Zero feature.
Nota
Suggested values: phpmyadmin or pmadb
Ver também
-
HIDE_PHP_VERSION
¶ If defined, this option will hide the PHP version (expose_php = Off). Set to any value (such as HIDE_PHP_VERSION=true).
-
UPLOAD_LIMIT
¶ If set, this option will override the default value for apache and php-fpm (this will change
upload_max_filesize
andpost_max_size
values).Nota
Format as [0-9+](K,M,G) default value is 2048K
-
MEMORY_LIMIT
¶ If set, this option will override the phpMyAdmin memory limit
$cfg['MemoryLimit']
and PHP’s memory_limit.Nota
Format as [0-9+](K,M,G) where K is for Kilobytes, M for Megabytes, G for Gigabytes and 1K = 1024 bytes. Default value is 512M.
-
MAX_EXECUTION_TIME
¶ If set, this option will override the maximum execution time in seconds for phpMyAdmin
$cfg['ExecTimeLimit']
and PHP’s max_execution_time.Nota
Format as [0-9+]. Default value is 600.
-
PMA_CONFIG_BASE64
¶ If set, this option will override the default config.inc.php with the base64 decoded contents of the variable.
-
PMA_USER_CONFIG_BASE64
¶ If set, this option will override the default config.user.inc.php with the base64 decoded contents of the variable.
-
PMA_UPLOADDIR
¶ If set, this option will set the path where files can be saved to be available to import (
$cfg['UploadDir']
)
-
PMA_SAVEDIR
¶ If set, this option will set the path where exported files can be saved (
$cfg['SaveDir']
)
-
APACHE_PORT
¶ If set, this option will change the default Apache port from 80 in case you want it to run on a different port like an unprivileged port. Set to any port value (such as APACHE_PORT=8090).
Por padrão, Modo de autenticação por cookies é usado, mas se PMA_USER
e PMA_PASSWORD
estiverem definidos, ele muda para Modo de autenticação por configuração.
Nota
The credentials you need to log in are stored in the MySQL server, in case
of Docker image, there are various ways to set it (for example
MYSQL_ROOT_PASSWORD
when starting the MySQL container). Please check
documentation for MariaDB container
or MySQL container.
Personalizando a configuração¶
Além disso, a configuração pode ser modificada pelo /etc/phpmyadmin/config.user.inc.php
. Se esse arquivo existir, ele será carregado depois que a configuração for gerada a partir das variáveis de ambiente acima, para que você possa substituir qualquer variável de configuração. Essa configuração pode ser adicionada como um volume ao invocar o Docker usando os parâmetros -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php.
Observe que o arquivo de configuração fornecido é aplicado após Variáveis de ambiente do Docker, mas você pode substituir qualquer um dos valores.
For example to change the default behavior of CSV export you can use the following configuration file:
<?php
$cfg['Export']['csv_columns'] = true;
Você também pode usá-lo para definir a configuração do servidor em vez de usar as variáveis de ambiente listadas em Variáveis de ambiente do Docker:
<?php
/* Override Servers array */
$cfg['Servers'] = [
1 => [
'auth_type' => 'cookie',
'host' => 'mydb1',
'port' => 3306,
'verbose' => 'Verbose name 1',
],
2 => [
'auth_type' => 'cookie',
'host' => 'mydb2',
'port' => 3306,
'verbose' => 'Verbose name 2',
],
];
Ver também
Veja Configuração para uma descrição detalhada das opções de configuração.
Volumes no Docker¶
You can use the following volumes to customize image behavior:
/etc/phpmyadmin/config.user.inc.php
Can be used for additional settings, see the previous chapter for more details.
/sessions/
Diretório onde as sessões PHP são armazenadas. Você pode querer compartilhar isso, por exemplo, ao usar Modo de autenticação tradicional.
/www/themes/
Diretório onde o phpMyAdmin procura pelos temas. Por padrão, apenas os fornecidos com o phpMyAdmin são incluídos, mas você pode incluir temas adicionais do phpMyAdmin (veja Temas Personalizados) usando volumes do Docker.
Exemplos do Docker¶
Para conectar o phpMyAdmin a um determinado servidor use:
docker run --name phpmyadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin:latest
Para conectar o phpMyAdmin a mais servidores use:
docker run --name phpmyadmin -d -e PMA_HOSTS=dbhost1,dbhost2,dbhost3 -p 8080:80 phpmyadmin:latest
Para usar opção arbitrária do servidor:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -e PMA_ARBITRARY=1 phpmyadmin:latest
Você também pode conectar o container do banco de dados usando o Docker:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin:latest
Rodando com configurações adicionais:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin:latest
Rodando com temas adicionais:
docker run --name phpmyadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/custom/phpmyadmin/themeName/:/var/www/html/themes/themeName/ phpmyadmin:latest
Usando docker-compose¶
Alternatively, you can also use docker-compose with the docker-compose.yml from <https://github.com/phpmyadmin/docker>. This will run phpMyAdmin with an arbitrary server - allowing you to specify MySQL/MariaDB server on the login page.
docker compose up -d
Personalizando o arquivo de configuração usando o docker-compose¶
Você pode usar um arquivo externo para personalizar a configuração do phpMyAdmin e passá-lo usando a diretiva de volumes:
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
restart: always
ports:
- 8080:80
volumes:
- /sessions
- ~/docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
- /custom/phpmyadmin/theme/:/www/themes/theme/
Ver também
Rodando por trás de um haproxy em um subdiretório¶
Quando você quer expor o phpMyAdmin rodando em um container Docker em um subdiretório, você precisa reescrever o caminho da solicitação no servidor que faz o proxy das solicitações.
For example, using haproxy it can be done as:
frontend http
bind *:80
option forwardfor
option http-server-close
### NETWORK restriction
acl LOCALNET src 10.0.0.0/8 192.168.0.0/16 172.16.0.0/12
# /phpmyadmin
acl phpmyadmin path_dir /phpmyadmin
use_backend phpmyadmin if phpmyadmin LOCALNET
backend phpmyadmin
mode http
reqirep ^(GET|POST|HEAD)\ /phpmyadmin/(.*) \1\ /\2
# phpMyAdmin container IP
server localhost 172.30.21.21:80
Ao usar o traefik, algo como o seguinte deve funcionar:
defaultEntryPoints = ["http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
regex = "(http:\\/\\/[^\\/]+\\/([^\\?\\.]+)[^\\/])$"
replacement = "$1/"
[backends]
[backends.myadmin]
[backends.myadmin.servers.myadmin]
url="http://internal.address.to.pma"
[frontends]
[frontends.myadmin]
backend = "myadmin"
passHostHeader = true
[frontends.myadmin.routes.default]
rule="PathPrefixStrip:/phpmyadmin/;AddPrefix:/"
Você deve então especificar PMA_ABSOLUTE_URI
na configuração do docker-compose:
version: '2'
services:
phpmyadmin:
restart: always
image: phpmyadmin:latest
container_name: phpmyadmin
hostname: phpmyadmin
domainname: example.com
ports:
- 8000:80
environment:
- PMA_HOSTS=172.26.36.7,172.26.36.8,172.26.36.9,172.26.36.10
- PMA_VERBOSES=production-db1,production-db2,dev-db1,dev-db2
- PMA_USER=root
- PMA_PASSWORD=
- PMA_ABSOLUTE_URI=http://example.com/phpmyadmin/
IBM Cloud¶
One of our users has created a helpful guide for installing phpMyAdmin on the IBM Cloud platform.
Instalação Rápida¶
- Choose an appropriate distribution kit from the phpmyadmin.net
Downloads page. Some kits contain only the English messages, others
contain all languages. We’ll assume you chose a kit whose name
looks like
phpMyAdmin-x.x.x-all-languages.tar.gz
. - Certifique-se de que você baixou um arquivo autêntico, veja Verificando releases do phpMyAdmin.
- Descompacte a distribuição (não se esqueça de descompactar os subdiretórios):
tar -xzvf phpMyAdmin_x.x.x-all-languages.tar.gz
no documento raiz de seu servidor. Se você não tem acesso direto ao documento raiz, coloque os arquivos em um diretório em sua máquina local e, após a etapa 4, transfira o diretório para seu servidor web utilizando, por exemplo, o protocolo FTP. - Certifique-se que todos os scripts possuam o dono apropriado (caso o PHP seja executado em modo de segurança com alguns scripts tendo o proprietário diferente de outros scripts, poderá haver um problema). Veja a 4.2 Qual o meio preferido de tornar o phpMyAdmin seguro contra acessos maliciosos? e a 1.26 Eu acabei de instalar o phpMyADmin no documento raiz do IIS mas eu recebo o erro “Nenhum arquivo de entrada especificado” quando tento rodar o phpMyAdmin. para sugestões.
- Agora você deve configurar sua instalação. Existem dois métodos que podem ser utilizados. Tradicionalmente, os usuários têm que modificar uma cópia do arquivo
config.inc.php
manualmente, mas agora um script de instalação no estilo assistente é fornecido para aqueles que preferem uma instalação gráfica. Criar um arquivoconfig.inc.php
continua sendo a maneira mais rápida para iniciar e é necessária para certas funcionalidades avançadas.
Criando o arquivo manualmente¶
To manually create the file, simply use your text editor to create the
file config.inc.php
(you can copy config.sample.inc.php
to get
a minimal configuration file) in the main (top-level) phpMyAdmin
directory (the one that contains index.php
). phpMyAdmin first
loads the default configuration values and then overrides those values
with anything found in config.inc.php
. If the default value is
okay for a particular setting, there is no need to include it in
config.inc.php
. You’ll probably need only a few directives to get going; a
simple configuration may look like this:
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i=0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
// if you insist on "root" having no password:
// $cfg['Servers'][$i]['AllowNoPassword'] = true;
Ou, se você prefere não receber toda vez uma solicitação de acesso:
<?php
$i=0;
$i++;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'changeme'; // use here your password
$cfg['Servers'][$i]['auth_type'] = 'config';
Aviso
Armazenar senhas na configuração é inseguro, pois qualquer um pode então manipular o seu banco de dados.
Para uma explicação completa sobre todos os valores de configuração possíveis, consulte a seção Configuração neste documento.
Using the Setup script¶
Em vez de editar manualmente o config.inc.php
, você pode usar o recurso de configuração do phpMyAdmin. O arquivo pode ser gerado usando a configuração e você pode baixá-lo para subir para o servidor.
Em seguida, abra o seu navegador e visite o local onde você instalou o phpMyAdmin, com o sufixo /setup
. As mudanças não são salvas no servidor, você precisa usar o botão Download para salvá-las no seu computador e depois carregar no servidor.
Now the file is ready to be used. You can choose to review or edit the file with your favorite editor, if you prefer to set some advanced options that the setup script does not provide.
- Se você estiver usando a “configuração”
auth_type
, recomendamos que você proteja o diretório de instalação do phpMyAdmin, pois esta configuração não exige que o usuário digite uma senha para acessar a instalação do phpMyAdmin. É recomendado utilizar um método de autenticação alternativo, por exemplo com HTTP-AUTH em um arquivo .htaccess ou mudar aauth_type
para cookie ou http. Veja a ISPs, instalações multi-usuário para informações adicionais, especialmente a 4.4 O phpMyAdmin sempre dá um “Acesso negado” quando uso a autenticação por HTTP.. - Abra o diretório principal do phpMyAdmin no seu navegador. O phpMyAdmin deve exibir agora uma tela de boas-vindas e seus bancos de dados, ou um diálogo de autenticação, caso esteja usando método de autenticação por HTTP ou por cookie.
Script de instalação no Debian, Ubuntu e derivativos¶
Debian and Ubuntu have changed the way in which the setup script is enabled and disabled, in a way that single command has to be executed for either of these.
Para permitir a edição da configuração, invoque:
/usr/sbin/pma-configure
Para bloquear a edição da configuração, invoque:
/usr/sbin/pma-secure
Script de instalação no openSUSE¶
Algumas versões do openSUSE não incluem o script de instalação no pacote. Caso queira gerar uma configuração nelas, você pode tanto baixar o pacote original de <https://www.phpmyadmin.net/> quanto usar o script de configuração em nosso servidor de demonstração: <https://demo.phpmyadmin.net/master/setup/>.
Verificando releases do phpMyAdmin¶
Desde julho de 2015, todos os releases do phpMyAdmin são assinados criptograficamente pelo desenvolvedor, que até janeiro de 2016 foi Marc Delisle. O ID da sua chave é 0xFEFC65D181AF644A, sua impressão digital PGP é:
436F F188 4B1A 0C3F DCBF 0D79 FEFC 65D1 81AF 644A
e você pode obter mais informações de identificação em <https://keybase.io/lem9>.
A partir de janeiro de 2016, o gestor de releases é Isaac Bennetch. O ID da chave é 0xCE752F178259BD92, e sua impressão digital PGP é:
3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
e você pode obter mais informações de identificação em <https://keybase.io/ibennetch>.
Alguns downloads adicionais (por exemplo, temas) podem ser assinados por Michael Čihař. O ID da sua chave é 0x9C27B31342B7511D, e sua impressão digital PGP é:
63CB 1DF1 EF12 CF2A C0EE 5A32 9C27 B313 42B7 511D
e você pode obter mais informações de identificação em <https://keybase.io/nijel>.
Você deve verificar se a assinatura corresponde ao arquivo que baixou. Desta forma, você pode ter certeza de que está usando o mesmo código que foi publicado. Você também deve verificar a data da assinatura para se certificar de que baixou a versão mais recente.
Each archive is accompanied by .asc
files which contain the PGP signature
for it. Once you have both of them in the same folder, you can verify the signature:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Can't check signature: public key not found
As you can see gpg complains that it does not know the public key. At this point, you should do one of the following steps:
- Baixar o chaveiro do nosso servidor de download e depois importa-lo:
$ gpg --import phpmyadmin.keyring
- Baixar e importa a chave de um dos servidores:
$ gpg --keyserver hkp://pgp.mit.edu --recv-keys 3D06A59ECE730EB71B511C17CE752F178259BD92
gpg: requesting key 8259BD92 from hkp server pgp.mit.edu
gpg: key 8259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Isso vai melhorar um pouco a situação - neste ponto, você pode verificar que a assinatura da chave fornecida é válida mas ainda não pode confiar no nome usado na chave:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>"
gpg: aka "Isaac Bennetch <isaac@bennetch.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 3D06 A59E CE73 0EB7 1B51 1C17 CE75 2F17 8259 BD92
The problem here is that anybody could issue the key with this name. You need to ensure that the key is actually owned by the mentioned person. The GNU Privacy Handbook covers this topic in the chapter Validating other keys on your public keyring. The most reliable method is to meet the developer in person and exchange key fingerprints, however, you can also rely on the web of trust. This way you can trust the key transitively though signatures of others, who have met the developer in person.
Uma vez que a chave seja considerada confiável, os avisos não serão mais exibidos:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: Good signature from "Isaac Bennetch <bennetch@gmail.com>" [full]
Se a assinatura for inválida (o arquivo foi alterado), você receberá um erro claro independente do fato de chave estar marcada como confiável ou não:
$ gpg --verify phpMyAdmin-4.5.4.1-all-languages.zip.asc
gpg: Signature made Fri 29 Jan 2016 08:59:37 AM EST using RSA key ID 8259BD92
gpg: BAD signature from "Isaac Bennetch <bennetch@gmail.com>" [unknown]
Armazenamento de configurações do phpMyAdmin¶
Alterado na versão 3.4.0: Prior to phpMyAdmin 3.4.0 this was called Linked Tables Infrastructure, but the name was changed due to the extended scope of the storage.
Para um conjunto completo de recursos adicionais (Favoritos, comentários, histórico de SQL, mecanismo de monitoramento, geração de PDF, Transformações, Relações etc.) você precisa criar um conjunto de tabelas especiais. Essas tabelas podem ser localizadas em seu próprio banco de dados, ou em um banco de dados central para uma instalação multiusuário (esse banco de dados seria acessado pelo usuário de controle, portanto nenhum outro usuário deveria ter direitos sobre ele).
Configuração Zero¶
In many cases, this database structure can be automatically created and
configured. This is called “Zero Configuration” mode and can be particularly
useful in shared hosting situations. “ZeroConf” mode is on by default, to
disable set $cfg['ZeroConf']
to false.
Os três cenários a seguir estão cobertos pelo modo de Configuração Zero:
- Quando entrar no banco de dados onde as tabelas de armazenamento de configuração não estão presentes, o phpMyAdmin fornece a criação delas pela tab Operações.
- Quando entrar num banco de dados onde as tabelas já existem, o programa automaticamente detecta isso e começa a usá-las. Esta é a situação mais comum: depois que as tabelas são inicialmente criadas automaticamente elas são continuamente usadas sem perturbar o usuário: isso é muito útil também em hospedagem compartilhada onde o usuário não está habilitado para editar
config.inc.php
e usualmente o usuário tem acesso somente para um banco de dados. - Quando tiver acesso a múltiplos bancos de dados, se o usuário primeiro entra num banco de dados contendo as tabelas de armazenamento de configuração então muda para outro banco de dados, o phpMyAdmin continua a usar as tabelas do primeiro banco de dados; o usuário não é sugerido a criar mais tabelas em um novo banco de dados.
Manual de configuração¶
Por favor, olhe em seu diretório ./sql/
, onde você encontraria um arquivo chamado create_tables.sql. (Se você está usando um servidor Windows, preste especial atenção a 1.23 Eu estou rodando o MySQL em uma máquina Win32. Cada vez que eu crio uma nova tabela, a tabela e os nomes das colunas são mudados para letras minúsculas!).
Se você já tinha esta infraestrutura e:
- atualizou para o MySQL 4.1.2 ou mais recente, favor utilize o arquivo
sql/upgrade_tables_mysql_4_1_2+.sql
. - atualizou para o phpMyAdmin 4.3.0 ou mais recente a partir do 2.5.0 ou mais recente (<= 4.2.x), favor utilize o arquivo
sql/upgrade_column_info_4_3_0+.sql
. - atualizou para o phpMyAdmin 4.7.0 ou mais recente a partir do 4.3.0 ou mais recente, por favor utilize o arquivo
sql/upgrade_tables_4_7_0+.sql
.
e então crie novas tabelas importando o arquivo sql/create_tables.sql
.
Você pode usar seu phpMyAdmin para criar as tabelas para você. Lembre-se que você pode precisar de privilégios especiais (administrador) para criar o banco de dados e as tabelas, e que o script pode precisar de alguns ajustes, dependendo do nome do banco de dados.
Depois de importar o arquivo sql/create_tables.sql
, você deverá especificar os nomes de tabela em seu arquivo config.inc.php
. As diretivas utilizadas para isso podem ser encontradas na seção Configuração.
Você deverá também ter um usuário de controle (configurado em $cfg['Servers'][$i]['controluser']
e/ou $cfg['Servers'][$i]['controlpass']
) com os direitos adequados para estas tabelas. Por exemplo, você pode criá-la usando a instrução a seguir:
E para qualquer versão MariaDB:
CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON `<pma_db>`.* TO 'pma'@'localhost';
Para MySQL 8.0 e mais recente:
CREATE USER 'pma'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Para MySQL anterior a 8.0:
CREATE USER 'pma'@'localhost' IDENTIFIED WITH mysql_native_password AS 'pmapass';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';
Observe que as instalações do MySQL com PHP anterior a 7.4 e MySQL posterior a 8.0 podem exigir o uso da auteticação mysql_native_password como uma solução alternativa, veja 1.45 I get an error message about unknown authentication method caching_sha2_password when trying to log in para detalhes.
Atualizando uma versão antiga¶
Aviso
Nunca extraia a nova versão sobre uma instalação existente do phpMyAdmin, sempre remova primeiro os arquivos antigos mantendo apenas a configuração.
This way, you will not leave any old or outdated files in the directory, which can have severe security implications or can cause various breakages.
Basta copiar o arquivo config.inc.php
de sua instalação anterior para a instalação recém descompactada. Os arquivos de configuração de versões antigas podem requerer alguns ajustes, já que algumas opções foram alteradas ou removidas. Para a compatibilidade com o PHP 5.3 e anterior, remova a declaração set_magic_quotes_runtime(0);
que está próxima ao final de seu arquivo de configuração.
The complete upgrade can be performed in a few simple steps:
- Baixe a versão mais recente do phpMyAdmin de <https://www.phpmyadmin.net/downloads/>.
- Renomeie a pasta existente do phpMyAdmin (por exemplo, para
phpmyadmin-old
). - Unpack freshly downloaded phpMyAdmin to the desired location (for example
phpmyadmin
). - Copy
config.inc.php`
from old location (phpmyadmin-old
) to the new one (phpmyadmin
). - Teste se tudo funciona corretamente.
- Remove backup of a previous version (
phpmyadmin-old
).
Se você tiver atualizado o seu servidor MySQL a partir de uma versão anterior a 4.1.2 para a versão 5.x ou mais recente e se você usa a configuração de armazenamento do phpMyAdmin, você deve executar o script SQL encontrado no arquivo upgrade_tables_mysql_4_1_2+.sql
.
Se você atualizou o phpMyAdmin para a versão 4.3.0 ou mais recente a partir da 2.5.0 ou mais recente (<= 4.2.x) e usa o armazenamento de configuração do phpMyAdmin, você deve executar o script SQL encontrado em sql/upgrade_column_info_4_3_0+.sql
.
Não se esqueça de limpar o cache do navegador e esvaziar a sessão antiga deslogando e logando novamente.
Usando os modos de autenticação¶
HTTP and cookie authentication modes are recommended in a multi-user environment where you want to give users access to their own database and don’t want them to play around with others. Nevertheless, be aware that MS Internet Explorer seems to be really buggy about cookies, at least till version 6. Even in a single-user environment, you might prefer to use HTTP or cookie mode so that your user/password pair are not in clear in the configuration file.
Os modos de autenticação HTTP e cookie são mais seguros: a informação de login do MySQL não precisa estar definida no arquivo de configuração do phpMyAdmin (exceto, possivelmente, para a $cfg['Servers'][$i]['controluser']
). Embora, saiba que a senha é transferida em texto explícito a menos que você esteja usando o protocolo HTTPS. Em modo cookie, a senha é armazenada, encriptada com o algoritmo AES blowfish, em um cookie temporário.
Then each of the true users should be granted a set of privileges on a set of particular databases. Normally you shouldn’t give global privileges to an ordinary user unless you understand the impact of those privileges (for example, you are creating a superuser). For example, to grant the user real_user with all privileges on the database user_base:
GRANT ALL PRIVILEGES ON user_base.* TO 'real_user'@localhost IDENTIFIED BY 'real_password';
O que o usuário pode fazer agora é completamente controlado pelo sistema de gerenciamento de usuários do MySQL. Com o modo de autenticação por HTTP ou cookies, você não precisa preencher os campos user/password dentro da configuração $cfg['Servers']
.
Ver também
1.32 Eu posso usar autenticação HTTP com o IIS?, 1.35 Eu posso usar autenticação HTTP com o Apache CGI?, 4.1 Eu sou um ISP. Eu posso instalar uma cópia central do phpMyAdmin ou eu preciso instalar ela para cada cliente?, 4.2 Qual o meio preferido de tornar o phpMyAdmin seguro contra acessos maliciosos?, 4.3 Eu recebo erros quanto a não ser capaz de incluir um arquivo em /lang ou /libraries.
Modo de autenticação HTTP¶
Utiliza o HTTP como método básico de autenticação e permite você entrar como qualquer usuário válido do MySQL.
É suportado pela maioria das configurações PHP. Para suporte a IIS (ISAPI) usando CGI PHP veja 1.32 Eu posso usar autenticação HTTP com o IIS?, para uso com Apache CGI veja 1.35 Eu posso usar autenticação HTTP com o Apache CGI?.
Quando o PHP está rodando sob o mod_proxy_fcgi da Apache (por exemplo, com PHP-FPM), os cabeçalhos
Authorization
não são passados para a aplicação FCGI subjacente, de modo que suas credenciais não chegarão na aplicação. Nesse caso, você pode adicionar a seguinte diretiva de configuração:SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Veja também a 4.4 O phpMyAdmin sempre dá um “Acesso negado” quando uso a autenticação por HTTP. sobre não usar o mecanismo .htaccess junto com o modo de autenticação ‘HTTP’.
Nota
There is no way to do proper logout in HTTP authentication, most browsers will remember credentials until there is no different successful authentication. Because of this, this method has a limitation that you can not login with the same user after logout.
Modo de autenticação por cookies¶
- Nome de usuário e senha são armazenados em cookies durante a sessão e senha é eliminada quando termina.
- Com este modo, o usuário pode realmente deslogar-se do phpMyAdmin e logar novamente com o mesmo nome de usuário (isso não é possível com o Modo de autenticação HTTP).
- Caso queira permitir aos uuários usar qualquer hostname para conectar (em vez de somente o que está no configurado no
config.inc.php
), veja$cfg['AllowArbitraryServer']
. - Conforme mencionado na seção Requisitos, habilitar a extensão
openssl
irá acelerar o acesso consideravelmente, mas isto não é necessário.
Modo de autenticação tradicional¶
- This mode is a convenient way of using credentials from another application to authenticate to phpMyAdmin to implement a single signon solution.
- A outra aplicação tem que armazenar informações do login nos dados da sessão (veja
$cfg['Servers'][$i]['SignonSession']
e$cfg['Servers'][$i]['SignonCookieParams']
), ou você precisará implementar um script para retornar as credenciais (veja$cfg['Servers'][$i]['SignonScript']
). - Quando as credenciais não estiverem disponíveis, o usuário SERÁ redirecionado para
$cfg['Servers'][$i]['SignonURL']
, onde você lidará com o processo de login.
O exemplo básico de como salvar credenciais em uma sessão está disponível como: file:’examples/signon.php’:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use session based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
/* Use cookies for session */
ini_set('session.use_cookies', 'true');
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
// Uncomment and change the following line to match your $cfg['SessionSavePath']
//session_save_path('/foobar');
@session_start();
/* Was data posted? */
if (isset($_POST['user'])) {
/* Store there credentials */
$_SESSION['PMA_single_signon_user'] = $_POST['user'];
$_SESSION['PMA_single_signon_password'] = $_POST['password'];
$_SESSION['PMA_single_signon_host'] = $_POST['host'];
$_SESSION['PMA_single_signon_port'] = $_POST['port'];
/* Update another field of server configuration */
$_SESSION['PMA_single_signon_cfgupdate'] = ['verbose' => 'Signon test'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
$id = session_id();
/* Close that session */
@session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
} else {
/* Show simple form */
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin single signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">';
echo $_SESSION['PMA_single_signon_error_message'];
echo '</p>';
}
echo '<form action="signon.php" method="post">
Username: <input type="text" name="user" autocomplete="username" spellcheck="false"><br>
Password: <input type="password" name="password" autocomplete="current-password" spellcheck="false"><br>
Host: (will use the one from config.inc.php by default)
<input type="text" name="host"><br>
Port: (will use the one from config.inc.php by default)
<input type="text" name="port"><br>
<input type="submit">
</form>
</body>
</html>';
}
Alternatively, you can also use this way to integrate with OpenID as shown
in examples/openid.php
:
<?php
/**
* Single signon for phpMyAdmin using OpenID
*
* This is just example how to use single signon with phpMyAdmin, it is
* not intended to be perfect code and look, only shows how you can
* integrate this functionality in your application.
*
* It uses OpenID pear package, see https://pear.php.net/package/OpenID
*
* User first authenticates using OpenID and based on content of $AUTH_MAP
* the login information is passed to phpMyAdmin in session data.
*/
declare(strict_types=1);
if (false === @include_once 'OpenID/RelyingParty.php') {
exit;
}
/* Change this to true if using phpMyAdmin over https */
$secureCookie = false;
/**
* Map of authenticated users to MySQL user/password pairs.
*/
$authMap = ['https://launchpad.net/~username' => ['user' => 'root', 'password' => '']];
// phpcs:disable PSR1.Files.SideEffects,Squiz.Functions.GlobalFunction
/**
* Simple function to show HTML page with given content.
*
* @param string $contents Content to include in page
*/
function Show_page(string $contents): void
{
header('Content-Type: text/html; charset=utf-8');
echo '<?xml version="1.0" encoding="utf-8"?>' . "\n";
echo '<!DOCTYPE HTML>
<html lang="en" dir="ltr">
<head>
<link rel="icon" href="../favicon.ico" type="image/x-icon">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
<meta charset="utf-8">
<title>phpMyAdmin OpenID signon example</title>
</head>
<body>';
if (isset($_SESSION['PMA_single_signon_error_message'])) {
echo '<p class="error">' . $_SESSION['PMA_single_signon_message'] . '</p>';
unset($_SESSION['PMA_single_signon_message']);
}
echo $contents;
echo '</body></html>';
}
/**
* Display error and exit
*
* @param Exception $e Exception object
*/
function Die_error(Throwable $e): void
{
$contents = "<div class='relyingparty_results'>\n";
$contents .= '<pre>' . htmlspecialchars($e->getMessage()) . "</pre>\n";
$contents .= "</div class='relyingparty_results'>";
Show_page($contents);
exit;
}
// phpcs:enable
/* Need to have cookie visible from parent directory */
session_set_cookie_params(0, '/', '', $secureCookie, true);
/* Create signon session */
$sessionName = 'SignonSession';
session_name($sessionName);
@session_start();
// Determine realm and return_to
$base = 'http';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$base .= 's';
}
$base .= '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'];
$realm = $base . '/';
$returnTo = $base . dirname($_SERVER['PHP_SELF']);
if ($returnTo[strlen($returnTo) - 1] !== '/') {
$returnTo .= '/';
}
$returnTo .= 'openid.php';
/* Display form */
if ((! count($_GET) && ! count($_POST)) || isset($_GET['phpMyAdmin'])) {
/* Show simple form */
$content = '<form action="openid.php" method="post">
OpenID: <input type="text" name="identifier"><br>
<input type="submit" name="start">
</form>';
Show_page($content);
exit;
}
/* Grab identifier */
$identifier = null;
if (isset($_POST['identifier']) && is_string($_POST['identifier'])) {
$identifier = $_POST['identifier'];
} elseif (isset($_SESSION['identifier']) && is_string($_SESSION['identifier'])) {
$identifier = $_SESSION['identifier'];
}
/* Create OpenID object */
try {
$o = new OpenID_RelyingParty($returnTo, $realm, $identifier);
} catch (Throwable $e) {
Die_error($e);
}
/* Redirect to OpenID provider */
if (isset($_POST['start'])) {
try {
$authRequest = $o->prepare();
} catch (Throwable $e) {
Die_error($e);
}
$url = $authRequest->getAuthorizeURL();
header('Location: ' . $url);
exit;
}
/* Grab query string */
if (! count($_POST)) {
[, $queryString] = explode('?', $_SERVER['REQUEST_URI']);
} else {
// Fetch the raw query body
$queryString = file_get_contents('php://input');
}
/* Check reply */
try {
$message = new OpenID_Message($queryString, OpenID_Message::FORMAT_HTTP);
} catch (Throwable $e) {
Die_error($e);
}
$id = $message->get('openid.claimed_id');
if (empty($id) || ! isset($authMap[$id])) {
Show_page('<p>User not allowed!</p>');
exit;
}
$_SESSION['PMA_single_signon_user'] = $authMap[$id]['user'];
$_SESSION['PMA_single_signon_password'] = $authMap[$id]['password'];
$_SESSION['PMA_single_signon_HMAC_secret'] = hash('sha1', uniqid(strval(random_int(0, mt_getrandmax())), true));
session_write_close();
/* Redirect to phpMyAdmin (should use absolute URL here!) */
header('Location: ../index.php');
If you intend to pass the credentials using some other means than, you have to
implement wrapper in PHP to get that data and set it to
$cfg['Servers'][$i]['SignonScript']
. There is a very minimal example
in examples/signon-script.php
:
<?php
/**
* Single signon for phpMyAdmin
*
* This is just example how to use script based single signon with
* phpMyAdmin, it is not intended to be perfect code and look, only
* shows how you can integrate this functionality in your application.
*/
declare(strict_types=1);
// phpcs:disable Squiz.Functions.GlobalFunction
/**
* This function returns username and password.
*
* It can optionally use configured username as parameter.
*
* @param string $user User name
*
* @return array<int,string>
*/
function get_login_credentials(string $user): array
{
/* Optionally we can use passed username */
if (! empty($user)) {
return [$user, 'password'];
}
/* Here we would retrieve the credentials */
return ['root', ''];
}
Modo de autenticação por configuração¶
- Este modo é às vezes o menos seguro porque obriga você a preencher os campos
$cfg['Servers'][$i]['user']
e$cfg['Servers'][$i]['password']
(e como resultado, qualquer um pode ler o seu arquivoconfig.inc.php
e pode descobrir seu nome de usuário e senha). - Na seção ISPs, instalações multi-usuário, existe um trecho explicando como proteger o seu arquivo de configuração.
- Para segurança adicional neste modo, você poderia considerar a autenticação pelas diretivas de configuração via Host
$cfg['Servers'][$i]['AllowDeny']['order']
e$cfg['Servers'][$i]['AllowDeny']['rules']
. - Diferentemente de cookies e HTTP, esta opção não requer um usuário autenticado quando estiver carregando o site phpMyAdmin pela primeira vez. Isto é proposital mas pode permitir qualquer usuário ter acesso a sua instalação. O uso de algum método restritivo é recomendado, talvez um arquivo .htaccess com uma diretiva HTTP-AUTH ou então bloquear as requisições HTTP de entrada no mínimo em um dos seus roteadores ou firewall seria suficiente (qualquer um dos dois métodos está além do escopo deste manual mas são facilmente encontrados no Google).
Protegendo sua instalação do phpMyAdmin¶
O time phpMyAdmin trabalha bastante para tornar essa aplicação segura, embora sempre exista meios de tornar sua instalação mais segura:
Siga os nossos Anúncios de segurança e atualize o phpMyAdmin sempre que uma nova vulnerabilidade for publicada.
Sirva o phpMyAdmin apenas com HTTPS. De preferência, você também deve usar HSTS, para que esteja protegido contra ataques de downgrade de protocolo.
Ensure your PHP setup follows recommendations for production sites, for example display_errors should be disabled.
Remove the
test
directory from phpMyAdmin, unless you are developing and need a test suite.Remova o diretório “setup” do phpMyAdmin, você provavelmente não irá usá-lo após a instalação inicial.
Escolher corretamento um método de autenticação - Modo de autenticação por cookies provavelmente é a melhor escolha para hospedagem compartilhada.
Negue o acesso a arquivos auxiliares nas subpastas
./libraries/
e./templates/
na configuração do seu servidor web. Tal configuração evita potenciais exposições de caminho e vulnerabilidades com cross side scripting que possam ser encontradas nesse código. Para o servidor web Apache, isso geralmente é realizado com um arquivo .htaccess nesses diretórios.Negue o acesso a arquivos temporários, veja
$cfg['TempDir']
(se ele estiver dentro da sua raiz web, veja também Diretórios de importar/salvar/subir do servidor web).It is generally a good idea to protect a public phpMyAdmin installation against access by robots as they usually can not do anything good there. You can do this using
robots.txt
file in the root of your webserver or limit access by web server configuration, see 1.42 Como eu posso evitar que robôs acessem o phpMyAdmin?.Em caso de você não querer que todos os seus usuários MySQL tenham acesso ao phpMyAdmin, você pode usar
$cfg['Servers'][$i]['AllowDeny']['rules']
para limitá-los ou$cfg['Servers'][$i]['AllowRoot']
para negar o acesso ao usuário root.Ative o Autenticação de dois fatores para sua conta.
Considere ocultar o phpMyAdmin por trás de um proxy de autenticação, para que os usuários precisem se autenticar antes de fornecerem credenciais do MySQL para o phpMyAdmin. Você pode fazer isso configurando o seu servidor web para solicitar autenticação HTTP. Por exemplo, no Apache isso pode ser feito com:
AuthType Basic AuthName "Restricted Access" AuthUserFile /usr/share/phpmyadmin/passwd Require valid-user
Depois de ter alterado a configuração, você precisará criar uma lista de usuários que podem se autenticar. Isso pode ser feito usando o utilitário htpasswd:
htpasswd -c /usr/share/phpmyadmin/passwd username
Se você tem medo de ataques automatizados, ativar o Captcha através das opções
$cfg['CaptchaLoginPublicKey']
e$cfg['CaptchaLoginPrivateKey']
podem ser uma opção.Tentativas falhas de login são registradas no syslog (se disponível, veja
$cfg['AuthLog']
). Isso pode permitir o uso de uma ferramenta como o fail2ban para bloquear tentativas de força bruta. Observe que o arquivo de log usado pelo syslog não é o mesmo que os arquivos de erro ou de log de acesso do Apache.In case you’re running phpMyAdmin together with other PHP applications, it is generally advised to use separate session storage for phpMyAdmin to avoid possible session-based attacks against it. You can use
$cfg['SessionSavePath']
to achieve this.
Usando SSL para conexão ao servidor de banco de dados¶
Recomenda-se usar o SSL ao se conectar a um servidor de banco de dados remoto. Existem várias opções de configuração envolvidas na configuração do SSL:
$cfg['Servers'][$i]['ssl']
- Define se o SSL deve ser usado. Se você habilitar apenas isso, a conexão será criptografada, mas não há autenticação da conexão - você não pode verificar se está falando com o servidor correto.
$cfg['Servers'][$i]['ssl_key']
e$cfg['Servers'][$i]['ssl_cert']
- Isso é usado para autenticação do cliente com o servidor.
$cfg['Servers'][$i]['ssl_ca']
e$cfg['Servers'][$i]['ssl_ca_path']
- As autoridades de certificação em que você confia para certificados de servidor. Isso é usado para garantir que você está conversando com um servidor confiável.
$cfg['Servers'][$i]['ssl_verify']
- Esta configuração desabilita a verificação do certificado do servidor. Use com cuidado.
When the database server is using a local connection or private network and SSL can not be configured
you can use $cfg['MysqlSslWarningSafeHosts']
to explicitly list the hostnames that are considered secure.
Problemas conhecidos¶
Os usuários com privilégios específicos de colunas não conseguem “Navegar”¶
Se um usuário tiver apenas privilégios específicos de coluna em algumas colunas (mas não em todas) de uma tabela, “Navegar” falhará com uma mensagem de erro.
Como uma solução alternativa, uma consulta favorita com o mesmo nome da tabela pode ser criada, ela será executada ao usar o link “Navegar” em vez do padrão. Issue 11922.
Problemas ao fazer o login novamente depois de fazer o logout usando a autenticação ‘http’¶
Ao usar o auth_type
‘http’, pode ser impossível logar de volta (quando o logout ocorre manualmente ou após um período de inatividade). Issue 11898.
Configuração¶
All configurable data is placed in config.inc.php
in phpMyAdmin’s
toplevel directory. If this file does not exist, please refer to the
Instalação section to create one. This file only needs to contain the
parameters you want to change from their corresponding default value.
Ver também
Exemplos para exemplos de configurações
Se um parâmetro estiver faltando de seu arquivo, você pode simplesmente adicionar outra linha ao arquivo. Esse arquivo é para sobrescrever os padrões; se você quiser usar o valor padrão não será necessário adicionar uma linha aqui.
Os parâmetros que são relativos ao design (como cores) estão localizados em themes/themename/scss/_variables.scss
. Você pode também querer criar os arquivos config.footer.inc.php
e config.header.inc.php
para adicionar um código específico no início e final de cada página do seu site.
Nota
Algumas distribuições (ex: Debian ou Ubuntu) armazenam o arquivo config.inc.php
em /etc/phpmyadmin
em vez de na pasta sources do phpMyAdmin.
Configurações básicas¶
-
$cfg['PmaAbsoluteUri']
¶ Tipo: string Valor padrão: ''
Alterado na versão 4.6.5: Esta configuração não estava disponível no phpMyAdmin 4.6.0 - 4.6.4.
Define aqui a URL (com o caminho completo) para o diretório de instalação do seu phpMyAdmin. Ex:
https://www.example.net/caminho_para_o_seu_diretório_phpMyAdmin/
. Observe também que a URL diferencia maiúsculas e minúsculas na maioria dos servidores web (até mesmo no Windows). Não esqueça a barra de escape no final.A partir da versão 2.3.0, recomenda-se deixar isto em branco. Na maior parte dos casos o phpMyAdmin automaticamente detecta a configuração mais apropriada. Aqueles que utilizam redirecionamento de portas ou uma configuração complexa de proxy reverso podem precisar definir isso.
Um bom teste é navegar numa tabela, editar um registro e salvá-lo. Deveria aparecer uma mensagem de erro se o phpMyAdmin estiver tendo problemas em auto-detectar o valor correto. Se você encontrar um erro que isto deva ser configurado ou se o código de auto-detectação falhar em detectar o caminho, por favor envie um relatório de bug para o nosso rastreador de bugs para podermos melhorar o código.
Ver também
1.40 Quando acesso o phpMyAdmin via um proxy reverso do Apache, o login por cookies não funciona., 2.5 Cada vez que eu tento inserir ou mudar um registro ou eliminar um banco de dados ou tabela, um erro 404 (página não encontrada) é mostrado ou, com a autenticação por cookie ou HTTP, é pedido para que eu entre novamente. Qual o problema?, 4.7 A janela de autenticação é mostrada mais de uma vez, porque?, 5.16 Com o Internet Explorer, eu recebo erros de JavaScript “Acesso negado”. Ou eu não consigo fazer o phpMyAdmin funcionar dentro do Windows.
-
$cfg['PmaNoRelation_DisableWarning']
¶ Tipo: boolean Valor padrão: false A partir da versão 2.3.0 o phpMyAdmin oferece muitos recursos para trabalhar com tabelas mestre/estrangeiras (veja a configuração
$cfg['Servers'][$i]['pmadb']
).Se você tentou definir uma configuração e ela não funcionar para você, dê uma olhada na página Structure de um banco de dados onde você gostaria de usá-la. Você vai encontrar um link que analisa porque essas configurações foram desativadas.
Se você não quiser usar essas funções configure esta variável para
true
para que a mensagem pare de aparecer.
-
$cfg['AuthLog']
¶ Tipo: string Valor padrão: 'auto'
Novo na versão 4.8.0: Isso é suportado desde o phpMyAdmin 4.8.0.
Configure o destino do log de autenticação. As tentativas de autenticação com falha (ou todas, dependendo do
$cfg['AuthLogSuccess']
) serão registradas de acordo com esta diretiva:auto
- Deixe o phpMyAdmin escolher automaticamente entre
syslog
ephp
. syslog
- Registra usando syslog, usando o recurso AUTH, na maioria dos sistemas isso vai parar em
/var/log/auth.log
. php
- Registra no log de erro do PHP.
sapi
- Registra no log da SAPI do PHP.
/caminho/para/o/arquivo
- Qualquer outro valor é tratado como um nome de arquivo e as entradas de log serão escritas lá.
Nota
Ao definir um arquivo de log, verifique se as permissões estão corretamente configuradas para um usuário do servidor web, a instalação deve corresponder às instruções descritas em
$cfg['TempDir']
:
-
$cfg['AuthLogSuccess']
¶ Tipo: boolean Valor padrão: false Novo na versão 4.8.0: Isso é suportado desde o phpMyAdmin 4.8.0.
Se deseja registrar tentativas de autenticação bem sucedidas no
$cfg['AuthLog']
.
-
$cfg['SuhosinDisableWarning']
¶ Tipo: boolean Valor padrão: false Um alerta é exibido na página principal se o pacote Suhosin for detectado.
Você pode configurar esse parâmetro para
true
para que esta mensagem pare de aparecer.
-
$cfg['LoginCookieValidityDisableWarning']
¶ Tipo: boolean Valor padrão: false Um alerta é disparado na página principal se o parâmetro session.gc_maxlifetime do PHP estiver mais baixo do que o cookie de validade configurado no phpMyAdmin.
Você pode configurar esse parâmetro para
true
para que esta mensagem pare de aparecer.
-
$cfg['ServerLibraryDifference_DisableWarning']
¶ Tipo: boolean Valor padrão: false Obsoleto desde a versão 4.7.0: Esta configuração foi removida, pois o aviso foi removido também.
Um aviso é mostrado na página principal se houver uma diferença entre a biblioteca MySQL e a versão do servidor.
Você pode configurar esse parâmetro para
true
para que esta mensagem pare de aparecer.
-
$cfg['ReservedWordDisableWarning']
¶ Tipo: boolean Valor padrão: false Esse aviso é exibido na página Estrutura de uma tabela se um ou mais nomes de campos forem iguais a palavras reservadas do MySQL.
Se você quiser desativar esse aviso, você pode configurá-la para
true
e o aviso não será mais exibido.
-
$cfg['TranslationWarningThreshold']
¶ Tipo: integer Valor padrão: 80 Mostra aviso a respeito de traduções incompletas em certa seção.
-
$cfg['SendErrorReports']
¶ Tipo: string Valor padrão: 'perguntar'
Os valores válidos são:
ask
always
never
Define o comportamento padrão do relatório de erros do JavaScript.
Sempre que um erro for detectado na execução do JavaScript, um relatório de erro poderá ser enviado ao time do phpMyAdmin se o usuário concordar.
O padrão de
'perguntar'
irá perguntar ao usuário toda vez que houver um novo relatório de erro. No entanto você pode definir esse parâmetro como'sempre'
para enviar relatórios de erro sem pedir por confirmação ou como'nunca'
para nunca enviar relatórios de erro.Essa diretiva está disponível tanto no arquivo de configuração quanto nas preferências de usuário. Se a pessoa a cargo de uma instalação multi-usuário preferir desativar essa função para todos os usuários, o valor de
'nunca'
será definido, e a diretiva$cfg['UserprefsDisallow']
deverá conter'SendErrorReports'
em um dos valores de seu vetor.
-
$cfg['ConsoleEnterExecutes']
¶ Tipo: boolean Valor padrão: false Setting this to
true
allows the user to execute queries by pressing Enter instead of Ctrl+Enter. A new line can be inserted by pressing Shift+Enter.O comportamento do console pode ser temporariamente modificado usando a sua interface de configurações.
-
$cfg['AllowThirdPartyFraming']
¶ Tipo: boolean|string Valor padrão: false Configurar este parâmetro para
true
permite ao phpMyAdmin ser incluído dentro de um frame, e é uma potencial brecha de segurança que permite ataque de scripts cross-frame ou sequestro de cliques. Configurar isto para ‘sameorigin’ previne phpMyAdmin de ser incluído a partir de outro documento em um frame, a menos que o documento pertença ao mesmo domínio.
Configurações de conexão de servidor¶
-
$cfg['Servers']
¶ Tipo: vetor Valor padrão: um conjunto de servidores com as configurações listadas abaixo Since version 1.4.2, phpMyAdmin supports the administration of multiple MySQL servers. Therefore, a
$cfg['Servers']
-array has been added which contains the login information for the different servers. The first$cfg['Servers'][$i]['host']
contains the hostname of the first server, the second$cfg['Servers'][$i]['host']
the hostname of the second server, etc. You can put as many sections for server definition as you need inconfig.inc.php
, copy that block or needed parts (you don’t have to define all settings, just those you need to change).Nota
The
$cfg['Servers']
array starts with $cfg[‘Servers’][1]. Do not use $cfg[‘Servers’][0]. If you want more than one server, just copy following section (including $i increment) several times. There is no need to define full server array, just define values you need to change.
-
$cfg['Servers'][$i]['host']
¶ Tipo: string Valor padrão: 'localhost'
O hostname ou o endereço IP do seu enésimo servidor MySQL. Ex:
localhost
.Os valores disponíveis são:
- hostname, ex:
'localhost'
ou'mydb.example.org'
- endereço IP, ex:
'127.0.0.1'
ou'192.168.10.1'
- Endereço IPv6, por exemplo:
2001:cdba:0000:0000:0000:0000:3257:9652
- ponto -
'.'
, ou seja, use fluxos nomeados em sistemas Windows - vazio -
''
, desativa este servidor
Nota
O nome de host
localhost
é tratado de forma especial pelo MySQL e ele usa o protocolo de conexão baseado em soquete. Para usar a rede TCP/IP, use um endereço IP ou um nome de host, tais como127.0.0.1
oudb.example.com
. Você pode configurar o caminho para o soquete com$cfg['Servers'][$i]['socket']
.- hostname, ex:
-
$cfg['Servers'][$i]['port']
¶ Tipo: string Valor padrão: ''
O número da porta do seu enésimo servidor MySQL. O padrão é 3306 (deixe em branco).
Nota
Se você usa
localhost
como o hostname, o MySQL ignora este número de porta e conecta via socket, então caso queira conectar com uma porta diferente da porta padrão, use127.0.0.1
ou um hostname verdadeiro em$cfg['Servers'][$i]['host']
.
-
$cfg['Servers'][$i]['socket']
¶ Tipo: string Valor padrão: ''
O caminho para o socket a ser usado. Deixe em branco para usar o padrão. Para determinar o socket correto, verifique a sua configuração MySQL ou, use o cliente mysql de linha de comando, passando o comando
status
. Dentre os resultados obtidos estará também o socket em uso.Nota
Isso só produz efeito se
$cfg['Servers'][$i]['host']
estiver configurado paralocalhost
.
-
$cfg['Servers'][$i]['ssl']
¶ Tipo: boolean Valor padrão: false Se deve habilitar SSL para a conexão entre o phpMyAdmin e o servidor MySQL para proteger a conexão.
Quando usada a extensão
'mysql'
, nenhuma das opções de configuração'ssl...'
restantes se aplicam.Nós recomendamos fortemente usar a extensão
'mysqli'
quando usar esta opção.Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_key']
¶ Tipo: string Valor padrão: null Caminho para o arquivo de chave do cliente ao usar SSL para se conectar ao servidor MySQL. Isso é usado para autenticar o cliente no servidor.
Por exemplo:
$cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/server-key.pem';
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_cert']
¶ Tipo: string Valor padrão: null Caminho para o arquivo de certificado do cliente ao usar SSL para se conectar ao servidor MySQL. Isso é usado para autenticar o cliente no servidor.
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca']
¶ Tipo: string Valor padrão: null Caminho para o arquivo CA quando usar SSL para conectar ao servidor MySQL.
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ca_path']
¶ Tipo: string Valor padrão: null Diretório contendo certificados das CAs SSL em formato PEM.
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_ciphers']
¶ Tipo: string Valor padrão: null Lista das cifras permitíveis para conexões SSL com o servidor MySQL.
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['ssl_verify']
¶ Tipo: boolean Valor padrão: true Novo na versão 4.6.0: Isso é suportado desde o phpMyAdmin 4.6.0.
Se a sua instalação do PHP usa o Driver Nativo do MySQL (mysqlnd), seu servidor MySQL é 5.6 ou posterior e seu certificado SSL é auto-assinado, há uma chance de sua conexão SSL falhar devido à validação. Definir isso como
false
desativará a verificação de validação.Desde o PHP 5.6.0 ele também verifica se o nome do servidor corresponde ao CN do seu certificado. Atualmente, não há como desabilitar apenas esta verificação sem desativar a verificação SSL completa.
Aviso
Desativar a verificação do certificado acaba com o propósito de usar o SSL. Isso tornará a conexão vulnerável a ataques man-in-the-middle.
Nota
Essa flag só funciona com PHP 5.6.16 ou versões mais recentes.
Ver também
Usando SSL para conexão ao servidor de banco de dados, Google Cloud SQL com SSL, Amazon RDS Aurora with SSL,
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
-
$cfg['Servers'][$i]['connect_type']
¶ Tipo: string Valor padrão: 'TCP'
Obsoleto desde a versão 4.7.0: Esta configuração não é mais utilizada a partir do 4.7.0, uma vez que o MySQL decide o tipo de conexão com base no host, logo isso poderia levar a resultados inesperados. Ao invés disso, por favor configure o
$cfg['Servers'][$i]['host']
de acordo.Que tipo de conexão utilizar com o servidor MySQL. Suas opções são
'socket'
e'tcp'
. O padrão é tcp pois ele é quase garantido que esteja disponível em todos os servidores MySQL, enquanto que sockets não são suportados em algumas plataformas. Para usar o modo socket, seu servidor MySQL deve estar na mesma máquina que o servidor web.
-
$cfg['Servers'][$i]['compress']
¶ Tipo: boolean Valor padrão: false Caso queira usar ou não o protocolo de compressão para a conexão com o servidor MySQL (em fase experimental).
-
$cfg['Servers'][$i]['controlhost']
¶ Tipo: string Valor padrão: ''
Permite usar um host alternativo para guardar os dados de configurações de armazenamento.
Ver também
-
$cfg['Servers'][$i]['controlport']
¶ Tipo: string Valor padrão: ''
Permite usar uma porta alternativa para conectar ao host que guarda o aramazenamento de configurações.
Ver também
-
$cfg['Servers'][$i]['controluser']
¶ Tipo: string Valor padrão: ''
-
$cfg['Servers'][$i]['controlpass']
¶ Tipo: string Valor padrão: ''
Esta conta especial é usada para acessar Armazenamento de configurações do phpMyAdmin. Você não precisa disso no caso de usuário único, mas se o phpMyAdmin é compartilhado, é recomendado dar acesso a Armazenamento de configurações do phpMyAdmin somente para este usuário e configurar o phpMyAdmin para usá-lo. Todos os usuários poderão então usar os recursos sem ter acesso direto a Armazenamento de configurações do phpMyAdmin.
Alterado na versão 2.2.5: esses eram chamados
stduser
estdpass
-
$cfg['Servers'][$i]['control_*']
¶ Tipo: misto Novo na versão 4.7.0.
Você pode alterar qualquer configuração de conexão MySQL para o link de controle (usado para acessar Armazenamento de configurações do phpMyAdmin) usando a configuração prefixada com
control_
.Isso pode ser usado para alterar qualquer aspecto da conexão de controle, que por padrão usa os mesmos parâmetros que os de usuário.
Por exemplo, você pode configurar o SSL para a conexão de controle:
// Enable SSL $cfg['Servers'][$i]['control_ssl'] = true; // Client secret key $cfg['Servers'][$i]['control_ssl_key'] = '../client-key.pem'; // Client certificate $cfg['Servers'][$i]['control_ssl_cert'] = '../client-cert.pem'; // Server certification authority $cfg['Servers'][$i]['control_ssl_ca'] = '../server-ca.pem';
Ver também
$cfg['Servers'][$i]['ssl']
,$cfg['Servers'][$i]['ssl_key']
,$cfg['Servers'][$i]['ssl_cert']
,$cfg['Servers'][$i]['ssl_ca']
,$cfg['Servers'][$i]['ssl_ca_path']
,$cfg['Servers'][$i]['ssl_ciphers']
,$cfg['Servers'][$i]['ssl_verify']
,$cfg['Servers'][$i]['socket']
,$cfg['Servers'][$i]['compress']
,$cfg['Servers'][$i]['hide_connection_errors']
-
$cfg['Servers'][$i]['auth_type']
¶ Tipo: string Valor padrão: 'cookie'
Uso de autenticação por configuração, cookie, “signon” ou HTTP neste servidor.
- A autenticação ‘config’ (
$auth_type = 'config'
) é a maneira antiga: o nome de usuário e a senha são armazenados noconfig.inc.php
. - O modo de autenticação ‘cookie’ (
$auth_type = 'cookie'
) permite logar como qualquer usuário válido do MySQL com o auxílio de cookies. - O modo de autenticação ‘http’ te permite logar como qualquer usuário válido do MySQL através do HTTP-Auth.
- O modo de autenticação ‘signon’ (
$auth_type = 'signon'
) permite logar através de dados de sessão PHP preparados ou através de um script PHP fornecido.
Ver também
- A autenticação ‘config’ (
-
$cfg['Servers'][$i]['auth_http_realm']
¶ Tipo: string Valor padrão: ''
Quando usar o auth_type = ‘http’, este campo permite definir um domínio de autenticação básico por HTTP customizado que será exibido para o usuário. Se não for explicitamente especificado na sua configuração, uma string combinada de “phpMyAdmin ” e
$cfg['Servers'][$i]['verbose']
ou$cfg['Servers'][$i]['host']
será usada.
-
$cfg['Servers'][$i]['auth_swekey_config']
¶ Tipo: string Valor padrão: ''
Novo na versão 3.0.0.0: This setting was named $cfg[‘Servers’][$i][‘auth_feebee_config’] and was renamed before the 3.0.0.0 release.
Obsoleto desde a versão 4.6.4: This setting was removed because their servers are no longer working and it was not working correctly.
Obsoleto desde a versão 4.0.10.17: This setting was removed in a maintenance release because their servers are no longer working and it was not working correctly.
The name of the file containing swekey ids and login names for hardware authentication. Leave empty to deactivate this feature.
-
$cfg['Servers'][$i]['user']
¶ Tipo: string Valor padrão: 'root'
-
$cfg['Servers'][$i]['password']
¶ Tipo: string Valor padrão: ''
Quando usar
$cfg['Servers'][$i]['auth_type']
definida como ‘config’ , esta será a combinação usuário/senha que o phpMyAdmin vai utilizar para conectar-se ao servidor MySQL. Este par usuário/senha não é necessário quando usar o método de autenticação por HTTP ou cookie e eles deveriam ficar vazios.
-
$cfg['Servers'][$i]['nopassword']
¶ Tipo: boolean Valor padrão: false Obsoleto desde a versão 4.7.0: Essa configuração foi removida, pois pode produzir resultados inesperados.
Permite tentar um login sem senha quando um login com senha falhar. Isto pode ser usado em conjunto com a autenticação por modo http, quando a autenticação é feita de alguma outra forma e o phpMyAdmin pega então o nome do usuário da autenticação e usa uma senha em branco para conectar-se ao MySQL. A primeira tentativa de login ainda é com senha, mas como ‘quebra-galho’, o método sem senha é usado.
Nota
It is possible to allow logging in with no password with the
$cfg['Servers'][$i]['AllowNoPassword']
directive.
-
$cfg['Servers'][$i]['only_db']
¶ Tipo: string ou vetor Valor padrão: ''
Caso configurado para um (um array de) nome(s) de banco(s) de dados, somente este(s) banco(s) de dados serão mostrados ao usuário. Desde o phpMyAdmin 2.2.1, este(s) nome(s) de banco(s) de dados pode(m) conter caracteres especiais do MySQL (“_” and “%”): se você quiser utilizar instâncias literais destes caracteres, use o caractere de escape também (ex: use
'my\_db'
e não'my_db'
).Esta configuração é uma forma eficiente de reduzir a carga do servidor pois este último não necessita enviar requisições ao MySQL para construir a lista de bancos de dados disponíveis. Porém, ela não substitui as regras de privilégio do servidor MySQL. Se configurado, significa somente que estes bancos de dados serão exibidos mas nem todos os bancos de dados poderão ser acessados.
Um exemplo de uso de mais de um banco de dados:
$cfg['Servers'][$i]['only_db'] = ['db1', 'db2'];
Alterado na versão 4.0.0: Versões anteriores permitiam especificar a ordem de exibição dos nomes de bancos de dados via essa diretiva.
-
$cfg['Servers'][$i]['hide_db']
¶ Tipo: string Valor padrão: ''
Expressão regular para omitir alguns bancos de dados de usuários sem privilégios. Isto só esconde eles da listagem, mas um usuário ainda é capaz de acessá-los (usando, por exemplo, a área de query SQL). Para realmente limitar o acesso, utilize o sistema de privilégios do MySQL. Por exemplo, para esconder todos os bancos de dados começando com a letra “a”, use
$cfg['Servers'][$i]['hide_db'] = '^a';
e para esconder ambos “db1” e “db2” use
$cfg['Servers'][$i]['hide_db'] = '^(db1|db2)$';
Mais informações sobre expressões regulares podem ser encontradas na parte do manual de referência do PHP em padrão de sintaxe PCRE.
-
$cfg['Servers'][$i]['verbose']
¶ Tipo: string Valor padrão: ''
Somente útil quando usado com a opção de múltiplos servidores do phpMyAdmin. Caso configurado, esta informação será exibida no lugar do hostname, no menu superior da página principal. Isto pode ser útil caso você queira mostrar somente alguns dos bancos de dados no seu sistema, por exemplo. Para autenticação por HTTP, todos os caracteres não-ASCII-US serão subtraídos.
-
$cfg['Servers'][$i]['extension']
¶ Tipo: string Valor padrão: 'mysqli'
Obsoleto desde a versão 4.2.0: Esta configuração foi removida. A extensão
mysql
será usada somente quando a extensãomysqli
não estiver disponível. A partir da versão 5.0.0, apenas a extensãomysqli
pode ser usada.A extensão PHP MySQL a ser usada (
mysql
oumysqli
).Recomenda-se usar
mysqli
em todas as instalações.
-
$cfg['Servers'][$i]['pmadb']
¶ Tipo: string Valor padrão: ''
O nome do banco de dados onde estão armazenadas as configurações do phpMyAdmin.
Veja a seção Armazenamento de configurações do phpMyAdmin neste documento para ver os benefícios desta função, e para uma rápida forma de criar este banco de dados e suas tabelas necessárias.
Se você for o único usuário desta instalação do phpMyAdmin, você pode utilizar o seu banco de dados atual para armazenar estas tabelas especiais; neste caso, apenas informe o nome do seu banco de dados atual em
$cfg['Servers'][$i]['pmadb']
. Para instalações multi-usuário, configure este parâmetro com o nome do seu banco de dados central onde estão armazenadas as configurações do phpMyAdmin.
-
$cfg['Servers'][$i]['bookmarktable']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.2.0.
A partir da versão 2.2.0 o phpMyAdmin permite que os suários salvem as suas queries favoritas. Este recurso pode ser útil para as queries que você roda frequentemente. Para permitir o uso dessa funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - informe o nome da tabela em
$cfg['Servers'][$i]['bookmarktable']
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['relation']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.2.4.
A partir da versão 2.2.4 você pode descrever, em um tabela especial de ‘relacionamento’, qual campo é chave para outra tabela (uma chave estrangeira). O phpMyAdmin atualmente utiliza esta para:
- torna clicável, quando você pesquisar a tabela mestre, os valores de dados que referenciam a tabela estrangeira;
- exibe em um tool-tip opcional a opção “mostrar campo” quando navegar pela tabela mestre, se você mover o mouse para uma coluna que contém uma chave estrangeira (use também a tabela ‘table_info’); (veja 6.7 Como eu posso usar a função “exibir coluna”?)
- no modo editar/inserir, exibe uma lista drop-down das possíveis chaves estrangeiras (valor da chave e “mostrar campo” são mostrados) (veja 6.21 Em modo de edição/inserimento, como eu posso ver uma lista dos valores disponíveis para uma coluna, baseado em alguma tabela estrangeira?)
- exibe os links na página de propriedades de tabela, para verificar a integridade referencial (exibe chave estrangeiras faltantes) para cada chave descrita;
- em query-por-exemplo, cria joins automaticamente (veja 6.6 Como eu posso usar a tabela de relações em query-por-exemplo?)
- permite você gerar um esquema PDF do seu banco de dados (usa também a tabela table_coords).
As chaves podem ser numéricas ou caracteres.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - insira o nome da tabela relacionada em
$cfg['Servers'][$i]['relation']
- agora como um usuário comum abra o phpMyAdmin e para cada uma de suas tabelas onde você queira utilizar este recurso, clique em Structure/Relation view/ e escolha as colunas estrangeiras.
Este recurso pode ser desativado mudando a configuração para
false
.Nota
Na versão atual,
master_db
deve ser o mesmo queforeign_db
. Estas colunas foram colocadas para desenvolvimento futuro dos relacionamentos inter-bancos.
-
$cfg['Servers'][$i]['table_info']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.3.0.
A partir da versão 2.3.0 você pode descrever, em uma tabela ‘table_info’ especial, qual a coluna que é para ser exibida como uma tool-tip quando mover o cursor sobre a chave correspondente. Essa variável da configuração irá guardar o nome dessa tabela especial. Para permitir o uso dessa funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['table_info']
(ex:pma_table_info
) - então, para cada tabela onde você quiser utilizar esta função, clique em “Estutura/Relacionamentos/Selecione a coluna para mostrar” para que possa selecionar a coluna.
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['table_coords']
¶ Tipo: string ou false Valor padrão: ''
O recurso de design pode salvar o layout da página;Ao pressionar o botão “Salvar página” ou “Salvar página como” no menu de expansão do designer, você pode personalizar o layout e carregá-lo na próxima vez que você usar o designer. Esse layout está armazenado nesta tabela. Além disso, esta tabela também é necessária para usar o recurso de exportação de relação PDF, veja
$cfg['Servers'][$i]['pdf_pages']
para mais detalhes.
-
$cfg['Servers'][$i]['pdf_pages']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.3.0.
Desde a versão 2.3.0 você pode fazer o phpMyAdmin criar páginas PDF mostrando as relações entre suas tabelas. Para fazer isso, ele precisa de duas tabelas “pdf_pages” (armazenando informação sobre as páginas PDF disponíveis) e “table_coords” (armazenando as coordenadas onde cada tabela será colocada em uma esquema de saída PDF). Para isso, você deve estar usando a função “relacionamento”.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque os nomes corretos das tabelas em
$cfg['Servers'][$i]['table_coords']
e em$cfg['Servers'][$i]['pdf_pages']
Esse recurso pode ser desativado mudando qualquer uma das configurações para
false
.- configure
-
$cfg['Servers'][$i]['designer_coords']
¶ Tipo: string Valor padrão: ''
Novo na versão 2.10.0: Desde a versão 2.10.0 uma interface de Designer está disponível; ela permite gerenciar visualmente as relações.
Obsoleto desde a versão 4.3.0: This setting was removed and the Designer table positioning data is now stored into
$cfg['Servers'][$i]['table_coords']
.Nota
You can now delete the table pma__designer_coords from your phpMyAdmin configuration storage database and remove
$cfg['Servers'][$i]['designer_coords']
from your configuration file.
-
$cfg['Servers'][$i]['column_info']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.3.0.
Essa parte exige uma atualização de conteúdo! Desde a versão 2.3.0 você pode armazenar comentários para descrever cada coluna para cada tabela. Eles será então mostrados na “printview”.
A partir da versão 2.5.0, os comentários são consequentemente usados nas páginas de propriedades de tabela e na visualização de tabela, mostrando como tool-tips acima do nome da tabela (propriedades da página) ou embutidas dentro do cabeçalho da tabela na visualização. Elas também podem ser mostradas em um despejo de tabela. Favor ver as diretivas de configuração relevantes mais tarde.
Também novo na versão 2.5.0 é o sistema de transformação de MIME que também é baseado na estrutura da tabela seguinte. Veja Transformações para mais informações. Para usar o sistema de transformação de MIME, sua tabela column_info tem que possuir os três novos campos ‘mimetype’, ‘transformation’ e ‘transformation_options’.
Começando com a versão 4.3.0, um novo sistema de transformação de entrada-orientada tem sido introduzido. O código de compatibilidade subdesenvolvido usado em sistemas de transformações antigos foi removido também. Como resultado, uma atualização da tabela column_info é necessária para transformações prévias e para os novos sistemas de transformação de entrada-orientada trabalharem. phpMyAdmin atualizará isso automaticamente para você analisando sua atual estrutura da tabela column_info. Entretanto, se alguma coisa der errado com a auto-atualização então você pode usar o script SQL encontrado em
./sql/upgrade_column_info_4_3_0+.sql
para atualizar isso manualmente.Para permtir o uso desta funcionalidade:
configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmincoloque o nome da tabela em
$cfg['Servers'][$i]['column_info']
(ex:pma_column_info
)para atualizar sua tabela Column_comments PRE-2.5.0 use isso: e lembre que a variável em
config.inc.php
foi renomeada de$cfg['Servers'][$i]['column_comments']
para$cfg['Servers'][$i]['column_info']
ALTER TABLE `pma__column_comments` ADD `mimetype` VARCHAR( 255 ) NOT NULL, ADD `transformation` VARCHAR( 255 ) NOT NULL, ADD `transformation_options` VARCHAR( 255 ) NOT NULL;
para atualizar sua tabela Column_info PRE-4.3.0 manualmente use esse script SQL
./sql/upgrade_column_info_4_3_0+.sql
.
Este recurso pode ser desativado mudando a configuração para
false
.Nota
For auto-upgrade functionality to work, your
$cfg['Servers'][$i]['controluser']
must have ALTER privilege onphpmyadmin
database. See the MySQL documentation for GRANT on how toGRANT
privileges to a user.
-
$cfg['Servers'][$i]['history']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 2.5.0.
Desde a versão 2.5.0 você pode armazenar seu histórico SQL, o que significa todas as queries que você inseriu manualmente na interface do phpMyAdmin. Se você não quer usar um histórico baseado em tabelas, você pode usar o histórico baseado em JavaScript.
Usando isso, todos os items do seu histórico são deletados quando fechar a janela. Usando
$cfg['QueryHistoryMax']
você pode especificar uma quantidade de items de histórico que você quer guardar. A cada login, essa lista é cortada no limite máximo.O histórico de queries está disponível somente se o JavaScript estiver ativado no seu navegador.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['history']
(ex:pma_history
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['recent']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 3.5.0.
Desde a versão 3.5.0 você pode mostrar tabelas recentemente usadas no painel de navegação. Isso ajuda você a pular diretamente através da tabela, sem a necessidade de selecionar o banco de dados, e então selecionar a tabela. Usando
$cfg['NumRecentTables']
você pode configurar o número máximo de tabelas recentes mostrado. Quando você selecionar uma tabela da lista, ela irá pular para a página especificada em$cfg['NavigationTreeDefaultTabTable']
.Sem configurar o armazenamento, você ainde consegue acessar as tabelas recentemente usadas, mas elas irão desaparecer após você sair.
Para permtir o uso desta funcionalidade permanentemente:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['recent']
(ex:pma_recent
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['favorite']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.2.0.
Desde a versão 4.2.0, você pode mostrar uma lista de tabelas selecionadas no painel de navegação. Isso te ajuda a pular para a tabela diretamente, sem a necessidade de selecionar o banco de dados e, em seguida, selecionar a tabela. Quando você seleciona uma tabela da lista, ela irá pular para a página especificada em
$cfg['NavigationTreeDefaultTabTable']
.Você pode adicionar tabelas nesta lista ou remover tabelas dela na página de estrutura do banco de dados clicando nos ícones de estrela próximos aos nomes das tabelas. Usando
$cfg['NumFavoriteTables']
você pode configurar o número máximo de tabelas favoritas mostradas.Sem configurar o armazenamento, você ainda consegue acessar as tabelas favoritas, mas elas irão desaparecer após você sair.
Para permtir o uso desta funcionalidade permanentemente:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['favorite']
(por exemplopma__favorite
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['table_uiprefs']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 3.5.0.
Desde a versão 3.5.0 o phpMyAdmin pode ser configurado para lembrar várias coisas (coluna ordenada
$cfg['RememberSorting']
, ordem das colunas, e visibilidade de colunas de uma tabela de banco de dados) para visualização de tabelas. Sem configurar o armazenamento, essas funções ainda podem ser usadas, mas os valores desaparecerão após você sair.Para permtir o uso desta funcionalidade permanentemente:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['table_uiprefs']
(ex:pma_table_uiprefs
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['users']
¶ Tipo: string ou false Valor padrão: ''
The table used by phpMyAdmin to store user name information for associating with user groups. See the next entry on
$cfg['Servers'][$i]['usergroups']
for more details and the suggested settings.
-
$cfg['Servers'][$i]['usergroups']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.1.0.
Desde a versão 4.1.0 você pode criar grupos de usuários diferentes com items de menu atrelados a eles. Os usuários podem ser relacionados a estes grupos e o usuário logado iria ver somente os itens configurados no grupo de usuário em que está cadastrado. Para fazer isso é necessário duas tabelas “usergroups” (armazenando itens de menu permitidos para cada grupo de usuário) e “usuários” (armazenando usuários e suas participações em grupos de usuários).
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque os nomes corretos das tabelas em
$cfg['Servers'][$i]['users']
(ex:pma__users
) e em$cfg['Servers'][$i]['usergroups']
(ex: pma__usergroups`)
Esse recurso pode ser desativado mudando qualquer uma das configurações para
false
.Ver também
- configure
Tipo: string ou false Valor padrão: ''
Novo na versão 4.1.0.
Desde a versão 4.1.0 você pode esconder/mostrar itens na árvore de navegação.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['navigationhiding']
(ex:pma__navigationhiding
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['central_columns']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.3.0.
Desde a versão 4.3.0 você pode ter uma lista central de colunas por banco de dados. Você pode adicionar/remover colunas para a lista de acordo com a sua exigência. Essas colunas na lista central estarão disponíveis para usar enquanto você cria uma nova coluna para a tabela ou cria-se uma tabela. Você pode selecionar uma coluna de uma lista central enquanto cria uma nova coluna, ela poupará você de escrever a mesma definição de coluna mais uma vez ou de escrever diferentes nomes para uma coluna similar.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['central_columns']
(ex:pma__central_columns
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['designer_settings']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.5.0.
Desde o release 4.5.0 as configurações de seu designer podem ser lembradas. Suas escolhas referentes a ‘Ligações Angulares/Diretas’, ‘Ajustar a Grade’, ‘Linhas de Relação de Alternância’, ‘Pequenas/Grandes’, ‘Mover Menu’ e ‘Marcar Texto’ podem ser lembradas de forma persistente.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['designer_settings']
(por exemplopma__designer_settings
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['savedsearches']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.2.0.
Desde a versão 4.2.0 você pode salvar e carregar pesquisas de exemplo-por-consulta do Banco de Dados > Painel de Consulta.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['savedsearches']
(ex:pma__savedsearches
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['export_templates']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 4.5.0.
Desde a versão 4.5.0 você pode salvar e carregar modelos de exportação.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['export_templates']
(por exemplopma__export_templates
)
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['tracking']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 3.3.x.
Desde a versão 3.3.x um mecanismo de rastreamento está disponível. Ele ajuda você a rastrear cada comando SQL que é executado pelo phpMyAdmin. O mecanismo suporta log de manipulação de dados e dados de definição de instruções. Após ativá-lo, você pode criar versões das tabelas.
A criação de uma versão possui dois efeitos:
- o phpMyAdmin salva uma fotografia da tabela, incluindo estruturas e índices.
- o phpMyAdmin guarda log de todos os comandos que mudarem a estrutura e/ou dados da tabela e referencia esses comandos na nova versão.
É claro que você pode ver as mudanças rastreadas. Na página Tracking está disponível um relatório completo para cada versão. Você pode usar filtros para o relatório, como por exemplo, você pode pegar uma lista de instruções dentro de uma data definida. Quando você quiser filtrar nomes de usuários, você pode entrar * para todos os nomes ou você pode inserir uma lista dos nomes separados por “,”. Além disso, você pode exportar os relatórios (filtrados) para um arquivo ou para um banco de dados temporário.
Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['tracking']
(ex:pma_tracking
)
Este recurso pode ser desativado mudando a configuração para
false
.
-
$cfg['Servers'][$i]['tracking_version_auto_create']
¶ Tipo: boolean Valor padrão: false Quando o mecanismo de rastreamento cria versões de tabelas e visões automaticamente.
Se isso estiver definido como true e você criar uma tabela ou view com
- CREATE TABLE …
- CREATE VIEW …
e nenhuma versão existir para ela, o mecanismo irá criar uma versão para você automaticamente.
-
$cfg['Servers'][$i]['tracking_default_statements']
¶ Tipo: string Valor padrão: 'CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE, CREATE INDEX, DROP INDEX, INSERT, UPDATE, DELETE, TRUNCATE, REPLACE, CREATE VIEW, ALTER VIEW, DROP VIEW, CREATE DATABASE, ALTER DATABASE, DROP DATABASE'
Define a lista de comandos que a auto-criação usa para novas versões.
-
$cfg['Servers'][$i]['tracking_add_drop_view']
¶ Tipo: boolean Valor padrão: true Whether a DROP VIEW IF EXISTS statement will be added as first line to the log when creating a view.
-
$cfg['Servers'][$i]['tracking_add_drop_table']
¶ Tipo: boolean Valor padrão: true Whether a DROP TABLE IF EXISTS statement will be added as first line to the log when creating a table.
-
$cfg['Servers'][$i]['tracking_add_drop_database']
¶ Tipo: boolean Valor padrão: true Whether a DROP DATABASE IF EXISTS statement will be added as first line to the log when creating a database.
-
$cfg['Servers'][$i]['userconfig']
¶ Tipo: string ou false Valor padrão: ''
Novo na versão 3.4.x.
Desde a versão 3.4.x o phpMyAdmin permite aos usuários configurar a maior parte das preferências e armazená-las no banco de dados.
Se você não permite armazenar as preferências em
$cfg['Servers'][$i]['pmadb']
, os usuários ainda conseguem personalizar o phpMyAdmin, mas as configurações serão salvas no armazenamento local do navegador, ou, se isso estiver indisponível, até o fim da sessão.Para permtir o uso desta funcionalidade:
- configure
$cfg['Servers'][$i]['pmadb']
e o storage de configurações do phpMyAdmin - coloque o nome da tabela em
$cfg['Servers'][$i]['userconfig']
Este recurso pode ser desativado mudando a configuração para
false
.- configure
-
$cfg['Servers'][$i]['MaxTableUiprefs']
¶ Tipo: integer Valor padrão: 100 Número máximo de linhas salvas na tabela:
$cfg['Servers'][$i]['table_uiprefs']
.Quando as tabelas são eliminadas ou renomeadas,
$cfg['Servers'][$i]['table_uiprefs']
poderá conter dados inválidos (referindo às tabelas que não existem mais). Nós só mantemos esse número de mais novos campos em$cfg['Servers'][$i]['table_uiprefs']
e automaticamente deletamos os campos mais antigos.
-
$cfg['Servers'][$i]['SessionTimeZone']
¶ Tipo: string Valor padrão: ''
Sets the time zone used by phpMyAdmin. Leave blank to use the time zone of your database server. Possible values are explained at https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
Isso é útil quando seu banco de dados usa uma zona de tempo que é diferente da zona de tempo que você quer usar no phpMyAdmin.
-
$cfg['Servers'][$i]['AllowRoot']
¶ Tipo: boolean Valor padrão: true Quando permitir acesso como root. Isso é apenas um atalho para
$cfg['Servers'][$i]['AllowDeny']['rules']
abaixo.
-
$cfg['Servers'][$i]['AllowNoPassword']
¶ Tipo: boolean Valor padrão: false Quando permitir autenticações sem senha. O valor padrão é
false
para esse parâmetro a fim de prevenir acessos não-desejados a um sevidor MySQL que foi deixado com uma senha vazia para root ou no qual há um usuário anônimo (em branco).
-
$cfg['Servers'][$i]['AllowDeny']['order']
¶ Tipo: string Valor padrão: ''
Se sua ordem de regras está vazia, então a autorização de IP está desabilitada.
Se sua orgem de regras está definida como
'deny,allow'
então o sistema aplica todas as regras de negação seguidas pelas regras de permissão. O acesso é permitido por padrão. Qualquer cliente que não se encontra num comando Deny ou que se encontra num comando Allow terá acesso permitido ao servidor.Se sua orgem de regras está definida como
'allow,deny'
então o sistema aplica todas as regras de permissão seguido das regras de negação. O acesso é negado por padrão. Qualquer cliente que não se encontra num diretiva Allow ou que se encontra numa diretiva Deny terá acesso negado ao servidor.Se sua ordem de regras está definida como
'explicit'
, a autorização é realizada num estilo similar à regra ‘deny,allow’, com a restrição adicional que a combinação do seu host/username deve ser listada nas regras allow, e não listada nas regras deny. Isso é o meio mais seguro de usar as regras Allow/Deny, e estava disponível no Apache através da especificação das regras allow e deny sem definição de qualquer ordem.Favor também ver
$cfg['TrustedProxies']
para detectar endereços IP por trás de proxies.
-
$cfg['Servers'][$i]['AllowDeny']['rules']
¶ Tipo: vetor de strings Valor padrão: array() O formato geral para as regras é assim:
<'allow' | 'deny'> <username> [from] <ipmask>
Se você deseja marcar todos os usuários, é possível usar um
'%'
como curinga no campo username.Existem alguns atalhos que você pode usar no campo da máscara IP também (favor observar que aqueles contendo SERVER_ADDRESS podem não estar disponíveis em todos os servidores web):
'all' -> 0.0.0.0/0 'localhost' -> 127.0.0.1/8 'localnetA' -> SERVER_ADDRESS/8 'localnetB' -> SERVER_ADDRESS/16 'localnetC' -> SERVER_ADDRESS/24
Ter uma lista de regras vazia é equivalente a usar
'allow % from all'
se sua ordem de regras está configurada como'deny,allow'
ou'deny % from all'
se sua ordem de regras está configurada como'allow,deny'
ou'explicit'
.For the IP Address matching system, the following work:
xxx.xxx.xxx.xxx
(an exact IP Address)xxx.xxx.xxx.[yyy-zzz]
(an IP Address range)xxx.xxx.xxx.xxx/nn
(Endereços IP de tipo CIDR, Classless Inter-Domain Routing - Roteamento Sem Classe entre Domínios)
Mas os endereços a seguir não funcionam:
xxx.xxx.xxx.xx[yyy-zzz]
(alcance parcial de endereço IP)
Para endereços IPv6, os endereços a seguir funcionam:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
(um endereço IPv6 exato)xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:[yyyy-zzzz]
(um alcance de endereço IPv6)xxxx:xxxx:xxxx:xxxx/nn
(Endereços IPv6 de tipo CIDR, Classless Inter-Domain Routing - Roteamento sem Classe Entre Domínios)
Mas os endereços a seguir não funcionam:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xx[yyy-zzz]
(alcance parcial de um endereço IPv6)
Exemplos:
$cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow bob from all']; // Allow only 'bob' to connect from any host $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow mary from 192.168.100.[50-100]']; // Allow only 'mary' to connect from host 192.168.100.50 through 192.168.100.100 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow % from 192.168.[5-6].10']; // Allow any user to connect from host 192.168.5.10 or 192.168.6.10 $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny'; $cfg['Servers'][$i]['AllowDeny']['rules'] = ['allow root from 192.168.5.50','allow % from 192.168.6.10']; // Allow any user to connect from 192.168.6.10, and additionally allow root to connect from 192.168.5.50
-
$cfg['Servers'][$i]['DisableIS']
¶ Tipo: boolean Valor padrão: false Desativa o uso de
INFORMATION_SCHEMA
para recuperar informação (use os comandosSHOW
em vez disso), por causa de problemas de velocidade quando houver muitos bancos de dados presentes.Nota
A habilitação desta opção pode dar a você uma grande performance em servidores MySQL antigos.
-
$cfg['Servers'][$i]['SignonScript']
¶ Tipo: string Valor padrão: ''
Novo na versão 3.5.0.
Nome do script PHP a ser buscado e executado para obter as credenciais de autenticação. Essa é uma técnica alternativa de autenticação baseada em sessão única. O script deve conter uma função chamada
get_login_credentials
que retorna a lista de usuário e senha, aceitando como único parâmetro um nome de usuário existente (pode ser vazio). Veja o arquivoexamples/signon-script.php
para um exemplo:<?php /** * Single signon for phpMyAdmin * * This is just example how to use script based single signon with * phpMyAdmin, it is not intended to be perfect code and look, only * shows how you can integrate this functionality in your application. */ declare(strict_types=1); // phpcs:disable Squiz.Functions.GlobalFunction /** * This function returns username and password. * * It can optionally use configured username as parameter. * * @param string $user User name * * @return array<int,string> */ function get_login_credentials(string $user): array { /* Optionally we can use passed username */ if (! empty($user)) { return [$user, 'password']; } /* Here we would retrieve the credentials */ return ['root', '']; }
Ver também
-
$cfg['Servers'][$i]['SignonSession']
¶ Tipo: string Valor padrão: ''
Nome da sessão que deverá ser usado no método de autenticação. Você deveria usar algo diferente de
phpMyAdmin
, já que essa é a sessão usada internamente pelo phpMyAdmin. Surte efeito somente se$cfg['Servers'][$i]['SignonScript']
não estiver configurado.Ver também
-
$cfg['Servers'][$i]['SignonCookieParams']
¶ Tipo: vetor Valor padrão: array()
Novo na versão 4.7.0.
Um vetor associativo de parâmetros de cookies de sessão de outro sistema de autenticação. Não é necessário se o outro sistema não usar session_set_cookie_params(). As chaves devem incluir ‘lifetime’, ‘path’, ‘domain’, ‘secure’ ou ‘httponly’. Os valores válidos são mencionados em session_get_cookie_params <https://www.php.net/manual/pt_BR/function.session-get-cookie-params.php> e devem ser configurados com os mesmos valores que a outra aplicação usa. Tem efeito somente se
$cfg['Servers'][$i]['SignonScript']
não estiver configurado.Ver também
-
$cfg['Servers'][$i]['SignonURL']
¶ Tipo: string Valor padrão: ''
URL onde o usuário será redirecionado para entrar com o método de autenticação. Deve ser absoluta, incluindo o protocolo.
Ver também
-
$cfg['Servers'][$i]['LogoutURL']
¶ Tipo: string Valor padrão: ''
URL onde o usuário será redirecionado após a saída (não afeta o método de autenticação por configuração). Deve ser absoluta, incluindo o protocolo.
-
$cfg['Servers'][$i]['hide_connection_errors']
¶ Tipo: boolean Valor padrão: false Novo na versão 4.9.8.
Whether to show or hide detailed MySQL/MariaDB connection errors on the login page.
Nota
This error message can contain the target database server hostname or IP address, which may reveal information about your network to an attacker.
Configurações genéricas¶
-
$cfg['DisableShortcutKeys']
¶ Tipo: boolean Valor padrão: false You can disable phpMyAdmin shortcut keys by setting
$cfg['DisableShortcutKeys']
to true.
-
$cfg['ServerDefault']
¶ Tipo: integer Valor padrão: 1 Se você tiver mais que um servidor configurado, você pode definir
$cfg['ServerDefault']
para qualquer um deles para auto-conectar ao servidor quando o phpMyAdmin for iniciado, ou definir para 0 para receber uma lista dos servidores sem autenticar.Se você tiver somente um servidor configurado,
$cfg['ServerDefault']
DEVE estar definido neste servidor.
-
$cfg['VersionCheck']
¶ Tipo: boolean Valor padrão: true Enables check for latest versions using JavaScript on the main phpMyAdmin page or by directly accessing index.php?route=/version-check.
Nota
Essa configuração pode ser ajustada pelo seu vendedor.
-
$cfg['ProxyUrl']
¶ Tipo: string Valor padrão: ''
A URL do proxy a ser usada quando o phpMyAdmin precisar acessar a internet externa para procurar informações da versão mais recente ou para enviar relatórios de erro. Você precisa disso se o servidor onde o phpMyAdmin estiver instalado não tiver acesso direto à internet. O formato é “nome de host:número de porta”
-
$cfg['ProxyUser']
¶ Tipo: string Valor padrão: ''
O usuário para autenticar no proxy. Por padrão, nenhuma autenticação é efetuada. Se for fornecido um usuário, será efetuada uma Autenticação Básica. Nenhum outro tipo de autenticação é suportado atualmente.
-
$cfg['ProxyPass']
¶ Tipo: string Valor padrão: ''
A senha para autenticar no proxy.
-
$cfg['MaxDbList']
¶ Tipo: integer Valor padrão: 100 O número máximo de nomes de bancos de dados a ser mostrado na lista do painel principal de bancos de dados.
-
$cfg['MaxTableList']
¶ Tipo: integer Valor padrão: 250 O número máximo de nomes de tabela a serem exibidos na lista do painel principal (exceto na página Exportação).
-
$cfg['ShowHint']
¶ Tipo: boolean Valor padrão: true Se mostra ou não dicas (por exemplo, dicas quando estiver com o mouse sobre cabeçalhos de tabela).
-
$cfg['MaxCharactersInDisplayedSQL']
¶ Tipo: integer Valor padrão: 1000 O número máximo de caracteres quando uma query SQL for mostrada. O limite padrão de 1000 deve ser corrigido para evitar a exibição de toneladas de códigos hexadecimais que representam BLOBs, mas alguns usuários tem queries SQL reais que tem mais de 1000 caracteres. Além disso, se o comprimento de uma query exceder esse limite, essa query não será guardada no histórico.
-
$cfg['PersistentConnections']
¶ Tipo: boolean Valor padrão: false Whether persistent connections should be used or not.
-
$cfg['ForceSSL']
¶ Tipo: boolean Valor padrão: false Obsoleto desde a versão 4.6.0: Esta configuração não está mais disponível desde o phpMyAdmin 4.6.0. Por favor, ajuste seu servidor web em vez disso.
Se força o uso de https quando acessa o phpMyAdmin. Em uma configuração de proxy reverso, definir isso para
true
não é suportado.Nota
Em algumas instalações (como proxy SSL separado ou balanceador de carga) você pode ter que definir
$cfg['PmaAbsoluteUri']
para redirecionamento correto.
-
$cfg['MysqlSslWarningSafeHosts']
¶ Tipo: vetor Valor padrão: ['127.0.0.1', 'localhost']
This search is case-sensitive and will match the exact string only. If your setup does not use SSL but is safe because you are using a local connection or private network, you can add your hostname or IP to the list. You can also remove the default entries to only include yours.
This check uses the value of
$cfg['Servers'][$i]['host']
.Novo na versão 5.1.0.
Examplo de configuração
$cfg['MysqlSslWarningSafeHosts'] = ['127.0.0.1', 'localhost', 'mariadb.local'];
-
$cfg['ExecTimeLimit']
¶ Tipo: inteiro [número de segundos] Valor padrão: 300 Define o número de segundos permitidos de execução de um script. Se estiver como zero segundos, nenhum limite de tempo é imposto. Essa configuração é usada quando importar/exportar arquivos de exportação mas não surte efeito quando o PHP estiver rodando em modo seguro.
-
$cfg['SessionSavePath']
¶ Tipo: string Valor padrão: ''
Caminho para armazenamento de dados de sessão (parâmetro session_save_path do PHP).
Aviso
Esta pasta não deve ser acessível publicamente por meio do servidor web, caso contrário você corre o risco de vazar dados privados da sua sessão.
-
$cfg['MemoryLimit']
¶ Tipo: string [número de bytes] Valor padrão: '-1'
Define o número de bytes que um script pode alocar. Se definido como
'-1'
, nenhum limite é imposto. Se definido como'0'
, nenhuma alteração é feita no limite de memória e ophp.ini
memory_limit
é usado.Esta configuração é usada durante a importação/exportação de arquivos de despejo, então você definitivamente não vai querer colocar um valor muito baixo aqui. Não tem efeito quando o PHP está sendo executado em modo de segurança.
Você também pode usar qualquer string como no arquivo
php.ini
, ex: ‘16M’. Certifique-se de não omitir o sufixo (16 significa 16 bytes!)
-
$cfg['SkipLockedTables']
¶ Tipo: boolean Valor padrão: false Marca tabelas usadas e torna possível mostrar bancos de dados com tabelas travadas (desde o MySQL 3.23.30).
-
$cfg['ShowSQL']
¶ Tipo: boolean Valor padrão: true Define se as queries SQL que são geradas pelo phpMyAdmin devem ser mostradas ou não.
-
$cfg['RetainQueryBox']
¶ Tipo: boolean Valor padrão: false Define se a caixa de query SQL deve continuar sendo mostrada após seu envio.
-
$cfg['CodemirrorEnable']
¶ Tipo: boolean Valor padrão: true Define se usa um editor de código JavaScript para caixas de query SQL. CodeMirror apresenta um destacamento de sintaxe e número de linha. No entanto, o clique do meio para colar os conteúdos da área de transferência em algumas distribuições do Linux (como o Ubuntu) não é suportado por todos os navegadores.
-
$cfg['LintEnable']
¶ Tipo: boolean Valor padrão: true Novo na versão 4.5.0.
Defines whether to use the parser to find any errors in the query before executing.
-
$cfg['DefaultForeignKeyChecks']
¶ Tipo: string Valor padrão: 'default'
Valor padrão da caixa de seleção para verificações de chaves estrangeiras, para desabilitar/habilitar verificações de chaves estrangeiras para certas consultas. Os valores possíveis são ‘default’`,
'enable'
ou'disable'
. Se configurado para'default'
, o valor da variávelFOREIGN_KEY_CHECKS
do MySQL é usado.
-
$cfg['AllowUserDropDatabase']
¶ Tipo: boolean Valor padrão: false Aviso
Esta não é uma medida de segurança, pois sempre haverá maneiras de contornar isso. Se você deseja proibir que os usuários removam bancos de dados, revogue seus privilégios DROP correspondentes.
Define se é permitido a usuários normais (não-administradores) deletar seus próprios bancos de dados ou não. Se definido como false, o link Drop Database não será mostrado, e um comando
DROP DATABASE mydatabase
será rejeitado. Bastante prático para ISP s com muitos clientes.A limitação das queries SQL não é tão estrita quando usado os privilégios MySQL. Isso é por causa da natureza das queries SQL que pode ser bem complicada. Então esta escolha deveria ser vista como uma ajuda para evitar exclusão acidental em vez de limitação estrito de privilégios.
-
$cfg['Confirm']
¶ Tipo: boolean Valor padrão: true Se um aviso (“Você tem certeza…”) deve ser mostrado quando você está prestes a perder dados.
-
$cfg['UseDbSearch']
¶ Tipo: boolean Valor padrão: true Define se a “pesquisa por string dentro de banco de dados” está ativada ou não.
-
$cfg['IgnoreMultiSubmitErrors']
¶ Tipo: boolean Valor padrão: false Define se o phpMyAdmin irá continuar executando instruções multi-query se uma das queries falhar. O padrão é abortar a execução.
-
$cfg['enable_drag_drop_import']
¶ Tipo: boolean Valor padrão: true Se o recurso de importação com arrastar e soltar está ativado ou não. Quando ativado, um usuário pode arrastar um arquivo para o navegador e o phpMyAdmin tentará importar o arquivo.
-
$cfg['URLQueryEncryption']
¶ Tipo: boolean Valor padrão: false Novo na versão 4.9.8.
Define whether phpMyAdmin will encrypt sensitive data (like database name and table name) from the URL query string. Default is to not encrypt the URL query string.
-
$cfg['URLQueryEncryptionSecretKey']
¶ Tipo: string Valor padrão: ''
Novo na versão 4.9.8.
A secret key used to encrypt/decrypt the URL query string. Should be 32 bytes long.
-
$cfg['maxRowPlotLimit']
¶ Tipo: integer Valor padrão: 500 Maximum number of rows retrieved for zoom search.
Opções de autenticação por cookie¶
-
$cfg['blowfish_secret']
¶ Tipo: string Valor padrão: ''
The “cookie” auth_type uses the Sodium extension to encrypt the cookies (see Cookie). If you are using the “cookie” auth_type, enter here a generated string of random bytes to be used as an encryption key. It will be used internally by the Sodium extension: you won’t be prompted for this encryption key.
Since a binary string is usually not printable, it can be converted into a hexadecimal representation (using a function like sodium_bin2hex) and then used in the configuration file. For example:
// The string is a hexadecimal representation of a 32-bytes long string of random bytes. $cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
Using a binary string is recommended. However, if all 32 bytes of the string are visible characters, then a function like sodium_bin2hex is not required. For example:
// A string of 32 characters. $cfg['blowfish_secret'] = 'JOFw435365IScA&Q!cDugr!lSfuAz*OW';
Aviso
The encryption key must be 32 bytes long. If it is longer than the length of bytes, only the first 32 bytes will be used, and if it is shorter, a new temporary key will be automatically generated for you. However, this temporary key will only last for the duration of the session.
Nota
A configuração é chamada blowfish_secret por razões históricas como algoritmo Blowfish foi originalmente usado para fazer o encapsulamento.
Alterado na versão 3.1.0: A partir da versão 3.1.0 o phpMyAdmin pode gerá-la automaticamente, mas ela torna-se um pouco fraca já que esta frase gerada é armazenada em sessão e além disto torna-se impossível resgatar o nome de usuário do cookie.
Alterado na versão 5.2.0: Since version 5.2.0, phpMyAdmin uses the sodium_crypto_secretbox and sodium_crypto_secretbox_open PHP functions to encrypt and decrypt cookies, respectively.
-
$cfg['CookieSameSite']
¶ Tipo: string Valor padrão: 'Strict'
Novo na versão 5.1.0.
It sets SameSite attribute of the Set-Cookie HTTP response header. Valid values are:
Lax
Strict
None
Ver também
-
$cfg['LoginCookieRecall']
¶ Tipo: boolean Valor padrão: true Define se as autenticações anteriores devem ser relembradas ou não no modo de autenticação por cookie.
Isso é automaticamente desativado se você não tiver configurado
$cfg['blowfish_secret']
.
-
$cfg['LoginCookieValidity']
¶ Tipo: inteiro [número de segundos] Valor padrão: 1440 Define quanto tempo um cookie de login é válido. Favor observar que a opção de configuração do PHP session.gc_maxlifetime pode limitar a validade da sessão e se a sessão for perdida, a autenticação por cookie também é invalidada. Então é uma boa ideia definir
session.gc_maxlifetime
pelo menos para o mesmo valor que$cfg['LoginCookieValidity']
.
-
$cfg['LoginCookieStore']
¶ Tipo: inteiro [número de segundos] Valor padrão: 0 Define quanto tempo a autenticação por cookie deve ser armazenada no navegador. O padrão 0 quer dizer que ele será mantigo para a próxima sessão existente. Isso é recomendado para ambientes não confiáveis.
-
$cfg['LoginCookieDeleteAll']
¶ Tipo: boolean Valor padrão: true Se ativado (padrão), a saída deleta os cookies para todos os servidores, senão somente para o atual. Definir isso como false torna fácil esquecer de sair de outro servidor, quando você estiver usando mais de um.
-
$cfg['AllowArbitraryServer']
¶ Tipo: boolean Valor padrão: false Se ativado, permite você se autenticar em servidores arbitrários usando autenticação por cookies.
Nota
Favor usar isso com cuidado, já que isso pode permitir que os usuários acessem aos servidores MySQL por trás do firewall onde seu servidor HTTP está localizado. Veja também
$cfg['ArbitraryServerRegexp']
.
-
$cfg['ArbitraryServerRegexp']
¶ Tipo: string Valor padrão: ''
Restringe os servidores MySQL para os quais o usuário pode fazer log in quando
$cfg['AllowArbitraryServer']
está habilitado ao corresponder o IP ou o nome do host do servidor MySQL para a expressão regular dada. A expressão regular deve ser incluída com um caractere delimitador.Recomenda-se incluir símbolos de início e fim na expressão regular, de modo que você possa evitar correspondências parciais na string.
Exemplos:
// Allow connection to three listed servers: $cfg['ArbitraryServerRegexp'] = '/^(server|another|yetdifferent)$/'; // Allow connection to range of IP addresses: $cfg['ArbitraryServerRegexp'] = '@^192\.168\.0\.[0-9]{1,}$@'; // Allow connection to server name ending with -mysql: $cfg['ArbitraryServerRegexp'] = '@^[^:]\-mysql$@';
Nota
O nome completo do servidor foi correspondido, podendo incluir a porta também. Devido à maneira como o MySQL é permissivo nos parâmetros de conexão, é possível usar strings de conexão como
`server:3306-mysql`
. Isso pode ser usado para ignorar a expressão regular por sufixo, ao se conectar a outro servidor.
-
$cfg['CaptchaMethod']
¶ Tipo: string Valor padrão: 'invisible'
Os valores válidos são:
'invisible'
Use um método de verificação de captcha invisível;'checkbox'
Use uma caixa de seleção para confirmar que o usuário não é um robô.
Novo na versão 5.0.3.
-
$cfg['CaptchaApi']
¶ Tipo: string Valor padrão: 'https://www.google.com/recaptcha/api.js'
Novo na versão 5.1.0.
The URL for the reCaptcha v2 service’s API, either Google’s or a compatible one.
-
$cfg['CaptchaCsp']
¶ Tipo: string Valor padrão: 'https://apis.google.com https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/ https://ssl.gstatic.com/'
Novo na versão 5.1.0.
The Content-Security-Policy snippet (URLs from which to allow embedded content) for the reCaptcha v2 service, either Google’s or a compatible one.
-
$cfg['CaptchaRequestParam']
¶ Tipo: string Valor padrão: 'g-recaptcha'
Novo na versão 5.1.0.
The request parameter used for the reCaptcha v2 service.
-
$cfg['CaptchaResponseParam']
¶ Tipo: string Valor padrão: 'g-recaptcha-response'
Novo na versão 5.1.0.
The response parameter used for the reCaptcha v2 service.
-
$cfg['CaptchaLoginPublicKey']
¶ Tipo: string Valor padrão: ''
The public key for the reCaptcha service that can be obtained from the “Admin Console” on https://www.google.com/recaptcha/about/.
Ver também
reCaptcha será usado em Modo de autenticação por cookies.
Novo na versão 4.1.0.
-
$cfg['CaptchaLoginPrivateKey']
¶ Tipo: string Valor padrão: ''
The private key for the reCaptcha service that can be obtained from the “Admin Console” on https://www.google.com/recaptcha/about/.
Ver também
reCaptcha será usado em Modo de autenticação por cookies.
Novo na versão 4.1.0.
-
$cfg['CaptchaSiteVerifyURL']
¶ Tipo: string Valor padrão: ''
O URL para o serviço reCaptcha realizar a ação siteverify.
reCaptcha será usado em Modo de autenticação por cookies.
Novo na versão 5.1.0.
Painel principal¶
-
$cfg['ShowStats']
¶ Tipo: boolean Valor padrão: true Define se mostra ou não o uso de espaço e as estatísticas a respeito do bancos de dados e tabelas. Observer que as estatísticas exigem pelo menos o MySQL 3.23.3 e que, atualmente, o MySQL não oferece esse tipo de informação para tabelas Berkely DB.
-
$cfg['ShowServerInfo']
¶ Tipo: boolean|string Valor padrão: true Defines whether to display detailed server information on main page. Possible values are:
true
to show all server informationfalse
to hide server information'database-server'
to show only database server information'web-server'
to show only web server information
You can additionally hide more information by using
$cfg['Servers'][$i]['verbose']
.Alterado na versão 6.0.0: Added
'database-server'
and'web-server'
options.
-
$cfg['ShowPhpInfo']
¶ Tipo: boolean Valor padrão: false Define se mostra ou não o PHP information no quadro principal inicial (direito).
Favor observar que para bloquear o uso de
phpinfo()
nos scripts, você tem que colocar isto no seu arquivophp.ini
:disable_functions = phpinfo()
Aviso
Ativar a página phpinfo vazará muitas informações sobre a configuração do servidor. Não é recomendado ativar isso em instalações compartilhadas.
Isso também pode facilitar alguns ataques remotos em suas instalações, então ative isso somente quando necessário.
-
$cfg['ShowChgPassword']
¶ Tipo: boolean Valor padrão: true Define se mostra ou não o link Change password no quadro principal inicial (direito). Esta configuração não verifica os comandos MySQL inseridos diretamente.
Observe que habilitar o link Change password não tem efeito no modo de autenticação por configuração: devido ao valor da senha estar fixa no arquivo de configuração, os usuários finais não podem modificar suas senhas.
-
$cfg['ShowCreateDb']
¶ Tipo: boolean Valor padrão: true Define se mostra ou não o formulário para criação de banco de dados no quadro principal inicial (direito). Esta configuração não verifica os comandos MySQL inseridos diretamente.
-
$cfg['ShowGitRevision']
¶ Tipo: boolean Valor padrão: true Defines whether to display information about the current Git revision (if applicable) on the main panel.
-
$cfg['MysqlMinVersion']
¶ Tipo: vetor Define a versão mínima do MySQL suportada. O padrão é escolhido pela equipe do phpMyAdmin; no entanto, esta diretiva foi solicitada por um desenvolvedor do painel de controle Plesk para facilitar a integração com servidores MySQL mais antigos (onde a maioria dos recursos do phpMyAdmin funcionam).
Estrutura de banco de dados¶
-
$cfg['ShowDbStructureCharset']
¶ Tipo: boolean Valor padrão: false Defines whether to show a column displaying the charset for all tables in the database structure page.
-
$cfg['ShowDbStructureComment']
¶ Tipo: boolean Valor padrão: false Defines whether to show a column displaying the comments for all tables in the database structure page.
-
$cfg['ShowDbStructureCreation']
¶ Tipo: boolean Valor padrão: false Define se a página de estrutura do banco de dados (lista de tabelas) tem uma coluna “Criação” que mostra quando cada tabela foi criada.
-
$cfg['ShowDbStructureLastUpdate']
¶ Tipo: boolean Valor padrão: false Define se a página de estrutura do banco de dados (lista de tabelas) tem uma coluna de “Última atualização” que mostra quando foi a última atualização de cada tabela.
-
$cfg['ShowDbStructureLastCheck']
¶ Tipo: boolean Valor padrão: false Define se a página de estrutura do banco de dados (lista de tabelas) tem uma coluna “Última consulta” que mostra quando foi a última visualização de cada tabela.
-
$cfg['HideStructureActions']
¶ Tipo: boolean Valor padrão: true Defines whether the table structure actions are hidden under a “More” drop-down.
-
$cfg['ShowColumnComments']
¶ Tipo: boolean Valor padrão: true Define se os comentários da coluna devem ser exibidos como uma coluna na tela da estrutura de tabela.
Modo de navegação¶
Tipo: string Valor padrão: 'ícones'
Define se os links das abas de navegação contém “icones”, “texto” ou ambos.
-
$cfg['ActionLinksMode']
¶ Tipo: string Valor padrão: 'ambos'
Se definido como
ícones
, irá mostrar ícones em vez de texto para os links de propriedades do bd e tabelas (como Browse, Select, Insert, …). Pode ser definido como'both'
se você quiser ícones E texto. Quando definido comotexto
, irá mostrar somente texto.
-
$cfg['RowActionType']
¶ Tipo: string Valor padrão: 'ambos'
Se mostra ícones ou texto ou ambos no segmento de ação na linha da tabela. O valor pode ser
'icons'
,'text'
ou'both'
.
-
$cfg['ShowAll']
¶ Tipo: boolean Valor padrão: false Defines whether a user should be displayed a “Show all” button in browse mode or not in all cases. By default it is shown only on small tables (less than 500 rows) to avoid performance issues while getting too many rows.
-
$cfg['MaxRows']
¶ Tipo: integer Valor padrão: 25 Number of rows displayed when browsing a result set and no LIMIT clause is used. If the result set contains more rows, “Previous” and “Next” links will be shown. Possible values: 25,50,100,250,500.
-
$cfg['Order']
¶ Tipo: string Valor padrão: 'SMART'
Define se as colunas são mostradas em ordem ascendente (
ASC
), em ordem descendente (DESC
) ou em ordem (SMART
) - ex: ordem descendente de colunas de tipo TIME, DATE, DATETIME e TIMESTAMP, ordem ascendente nas demais - por padrão.Alterado na versão 3.4.0: Desde o phpMyAdmin 3.4.0, o valor padrão é
'SMART'
.
-
$cfg['DisplayBinaryAsHex']
¶ Tipo: boolean Valor padrão: true Defines whether the “Show binary contents as HEX” browse option is ticked by default.
Novo na versão 3.3.0.
Obsoleto desde a versão 4.3.0: This setting was removed.
-
$cfg['GridEditing']
¶ Tipo: string Valor padrão: 'clique-duplo'
Define qual ação (
double-click
ouclick
) ativa a edição da grade. Pode ser desativada com o valordisabled
.
-
$cfg['RelationalDisplay']
¶ Tipo: string Valor padrão: 'K'
Define o comportamento inicial para Opções > Relacional.
K
, que é o padrão, exibe a chave enquantoD
mostra a coluna exibida.
-
$cfg['SaveCellsAtOnce']
¶ Tipo: boolean Valor padrão: false Define se salva ou não todas as células editadas de uma vez na edição de grade.
Modo de edição¶
-
$cfg['ProtectBinary']
¶ Tipo: boolean ou string Valor padrão: 'blob'
Define se as colunas
BLOB
ouBINARY
são protegidas contra edição quando estiver navegando pelo conteúdo da tabela. Os valores válidos são:false
para permitir a edição de todas as colunas;'blob'
para permitir edição de todas as colunas exceto asBLOB
;'noblob'
para desativar a edição de todas as colunas exceto asBLOB
(o oposto de'blob'
);'all'
para desativar a edição de todas as colunasBINARY
ouBLOB
.
-
$cfg['ShowFunctionFields']
¶ Tipo: boolean Valor padrão: true Define se os campos de função MySQL devem ser mostradas inicialmente no modo de edição/inserimento. Desde a versão 2.10, o usuário pode ativar/desativar essa configuração pela interface.
-
$cfg['ShowFieldTypesInDataEditView']
¶ Tipo: boolean Valor padrão: true Define se os tipos de campos são mostrados inicialmente ou não no modo de edição/inserimento. O usuário pode ativar/desativar essa configuração pela interface.
-
$cfg['InsertRows']
¶ Tipo: integer Valor padrão: 2 Define o número padrão de linhas a serem inseridas na página Inserir. Os usuários podem mudar isso manualmente na parte inferior daquela página para adicionar ou remover linhas em branco.
-
$cfg['ForeignKeyMaxLimit']
¶ Tipo: integer Valor padrão: 100 Se houver menos itens que isto na seção de chaves estrangeiras, então uma caixa drop-down de chaves estrangeiras é apresentada, no estilo descrito pela configuração
$cfg['ForeignKeyDropdownOrder']
.
-
$cfg['ForeignKeyDropdownOrder']
¶ Tipo: vetor Valor padrão: array(‘content-id’, ‘id-content’) Para os campos de chaves estrangeiras drop-down, há vários métodos de exibição, oferecendo ambos os dados da chave e do valor. Os conteúdos do array devem ser uma ou ambas as strings:
content-id
,id-content
.
Configurações de exportação e importação¶
-
$cfg['ZipDump']
¶ Tipo: boolean Valor padrão: true
-
$cfg['GZipDump']
¶ Tipo: boolean Valor padrão: true
-
$cfg['BZipDump']
¶ Tipo: boolean Valor padrão: true Define se permite o uso de compressão zip/GZip/BZip2 quando criar um arquivo de despejo
-
$cfg['CompressOnFly']
¶ Tipo: boolean Valor padrão: true Define se permite exportações comprimidas em GZip/BZip2 em tempo de execução. Isso não afeta exportações menores e permite os usuários criar arquivos de exportação mais largos que não caberiam na memória caso contrário por causa do limite de memória do php. Arquivos produzidos contém mais cabeçalhos GZip/BZip2, mas todos os programas normais cuidam disso corretamente.
-
$cfg['Export']
¶ Tipo: vetor Valor padrão: array(…) Neste array são definidos os parâmetros padrão para exportação; os nomes de itens são similares a textos vistos na página de exportação, então você consegue identificar facilmente o que eles significam.
-
$cfg['Export']['format']
¶ Tipo: string Valor padrão: 'sql'
Formato de exportação padrão.
-
$cfg['Export']['method']
¶ Tipo: string Valor padrão: 'rápido'
Define como o formulário de exportação é mostrado quando carregado. Os valores válidos são:
quick
(“Rápida”) para mostrar o número mínimo de opções para configurarcustom
(“Personalizada”) para mostrar todas as opções disponíveis para configurarcustom-no-form
(“Personalizada sem formulário”) é o mesmo quecustom
(“Personalizada”), mas não mostra a opção de usar a exportação rápida
-
$cfg['Export']['compression']
¶ Tipo: string Valor padrão: 'none'
Default export compression method. Possible values are
'none'
,'zip'
or'gzip'
.
-
$cfg['Export']['charset']
¶ Tipo: string Valor padrão: ''
Define o charset para a exportação gerada. Por padrão, nenhuma conversão de charset é feita, assumindo UTF-8.
-
$cfg['Export']['file_template_table']
¶ Tipo: string Valor padrão: '@TABLE@'
Modelo de nome de arquivo padrão para exportação de tabelas.
-
$cfg['Export']['file_template_database']
¶ Tipo: string Valor padrão: '@DATABASE@'
Modelo de nome de arquivo padrão para exportação de bancos de dados.
-
$cfg['Export']['file_template_server']
¶ Tipo: string Valor padrão: '@SERVER@'
Modelo de nome de arquivo padrão para exportação de servidores.
-
$cfg['Export']['remove_definer_from_definitions']
¶ Tipo: boolean Valor padrão: false Remove DEFINER clause from the event, view and routine definitions.
Novo na versão 5.2.0.
-
$cfg['Import']
¶ Tipo: vetor Valor padrão: array(…) Neste array estão definidos os parâmetros padrão para importação; os nomes de itens são similares a textos vistos na página de importação, então você consegue facilmente identificar o que eles significam.
-
$cfg['Import']['charset']
¶ Tipo: string Valor padrão: ''
Define o charset para importação. Por padrão, nenhuma conversão de charset é feita, assumindo UTF-8.
-
$cfg['Schema']
¶ Tipo: vetor Valor padrão: array(…)
-
$cfg['Schema']['format']
¶ Tipo: string Valor padrão: 'pdf'
Defines the default format for schema export. Possible values are
'pdf'
,'eps'
,'dia'
or'svg'
.
Configurações de apresentação de abas¶
-
$cfg['TabsMode']
¶ Tipo: string Valor padrão: 'ambos'
Define se o menu com abas contém “ícones”, “texto” ou ambos.
-
$cfg['PropertiesNumColumns']
¶ Tipo: integer Valor padrão: 1 Quantas colunas serão utilizadas para mostrar as tabelas na visualização de propriedades do banco de dados? Quando definir isso para um valor maior que 1, o tipo do banco de dados será omitido para obter mais espaço de exibição.
-
$cfg['DefaultTabServer']
¶ Tipo: string Valor padrão: 'welcome'
Define a aba mostrada por padrão na exibição do servidor. Os valores possíveis são o equivalente localizado de:
welcome
(recomendado para instalações multi-usuário)databases
,status
variables
privileges
-
$cfg['DefaultTabDatabase']
¶ Tipo: string Valor padrão: 'structure'
Define a aba mostrada por padrão na exibição do banco de dados. Os valores possíveis são o equivalente localizado de:
structure
sql
search
operations
-
$cfg['DefaultTabTable']
¶ Tipo: string Valor padrão: 'browse'
Define a aba mostrada por padrão na exibição da tabela. Os valores possíveis são o equivalente localizado de:
structure
sql
search
insert
browse
Opções de PDF¶
-
$cfg['PDFPageSizes']
¶ Tipo: vetor Valor padrão: array('A3','A4','A5','carta','legal')
Vetor de tamanhos de papéis possíveis para criar páginas PDF.
Você não deveria precisar mudar isso.
-
$cfg['PDFDefaultPageSize']
¶ Tipo: string Valor padrão: 'A4'
Tamanho padrão de página a usar ao criar páginas PDF. Valores válidos estão listados em
$cfg['PDFPageSizes']
.
Linguagens¶
-
$cfg['DefaultLang']
¶ Tipo: string Valor padrão: 'en'
Define a linguagem padrão a usar, se não for definida pelo navegador ou pelo usuário. O arquivo da linguagem correspondente precisa estar em locale/code/LC_MESSAGES/phpmyadmin.mo.
-
$cfg['DefaultConnectionCollation']
¶ Tipo: string Valor padrão: 'utf8mb4_general_ci'
Define a codificação de caracteres padrão a usar na conexão, se não for definida pelo usuário. Veja a documentação do MySQL para charsets <https://dev.mysql.com/doc/refman/5.7/en/charset-charsets.html> para ver a lista de valores disponíveis.
-
$cfg['Lang']
¶ Tipo: string Valor padrão: não definido Força a linguagem a ser usada. O arquivo da linguagem correspondente precisa estar em locale/code/LC_MESSAGES/phpmyadmin.mo.
-
$cfg['FilterLanguages']
¶ Tipo: string Valor padrão: ''
Limite de lista de linguagens disponívels para aquelas correspodentes à expressão regular dada. Por exemplo, se você quer Tcheco ou Inglês, você deve configurar o filtro para
'^(cs|en)'
.
-
$cfg['RecodingEngine']
¶ Tipo: string Valor padrão: 'auto'
Você pode selecionar aqui quais funções serão usadas para conversão de conjunto de caracteres. Os valos disponíveis são:
'auto'
- automatically use available one (first is tested iconv, then mbstring)'iconv'
- use iconv or libiconv functions'mb'
- use mbstring extension'none'
- disable encoding conversion
Ativar a conversão de conjunto de caracteres ativa um menu pull-down nas páginas Importar e Exportar, para escolher o conjunto de caracteres quando exportar um arquivo. O valor padrão neste menu vem de
$cfg['Export']['charset']
e$cfg['Import']['charset']
.Alterado na versão 6.0.0: Support for the Recode extension has been removed. The
'recode'
value is ignored and the default value ('auto'
) is used instead.
-
$cfg['IconvExtraParams']
¶ Tipo: string Valor padrão: `'//TRANSLIT'
Especifica alguns parâmetros para o iconv, usados na conversão de caracteres. Veja a documentação do iconv <https://www.gnu.org/savannah-checkouts/gnu/libiconv/documentation/libiconv-1.15/iconv_open.3.html> para mais detalhes.
//TRANSLIT
é usado por padrão para que os caracteres inválidos sejam transliterados.
-
$cfg['AvailableCharsets']
¶ Tipo: vetor Valor padrão: array(…) Available character sets for MySQL conversion. You can add your own (any of supported by mbstring/iconv) or remove these which you don’t use. Character sets will be shown in same order as here listed, so if you frequently use some of these move them to the top.
Configurações de servidor web¶
-
$cfg['OBGzip']
¶ Tipo: string/boolean Valor padrão: 'auto'
Define se usa buffer de saída GZip para aumentar velocidade em transferências HTTP. Defina para true/false para ativar/desativar. Quando definido como ‘auto’ (string), o phpMyAdmin tenta ativar o buffer de saída e irá automaticamente desativar se seu navegador tiver algum problema com buffering. O IE6 com um certo patch é conhecido por causar corrompimento de dados quando o buffering está ativado.
-
$cfg['TrustedProxies']
¶ Tipo: vetor Valor padrão: array() Lista os proxies e cabeçalhos HTTP que são confiáveis para
$cfg['Servers'][$i]['AllowDeny']['order']
. Esta lista é vazia por padrão, então você precisa preencher com alguns servidores proxy confiáveis que você queira usar para regular endereços IP por trás de proxy.O exemplo a seguir especifica que o phpMyAdmin deveria confiar num cabeçalho HTTP_X_FORWARDED_FOR (
X-Forwarded-For
) vindo do proxy 1.2.3.4:$cfg['TrustedProxies'] = ['1.2.3.4' => 'HTTP_X_FORWARDED_FOR'];
A diretiva
$cfg['Servers'][$i]['AllowDeny']['rules']
usa o endereço IP do cliente como sempre.
-
$cfg['GD2Available']
¶ Tipo: string Valor padrão: 'auto'
Especifica se GD >= 2 está disponível. Se sim, ele pode ser usado para transformações MIME. Os valores disponíveis são:
- auto - automaticamente detectado
- yes - funções GD 2 podem ser usadas
- no - funções GD 2 não podem ser usadas
-
$cfg['CheckConfigurationPermissions']
¶ Tipo: boolean Valor padrão: true Nós normalmente verificamos as permissões no arquivo de configurações para garantir que ele não é globalmente editável. No entanto, o phpMyAdmin poderia ser instalado num sistema de arquivos NTFS montado num servidor não-Windows, nesse caso as permissões parecem erradas mas na realidade elas não podem ser detectadas. Neste caso um sysadmin iria definir este parâmetro como
false
.
-
$cfg['LinkLengthLimit']
¶ Tipo: integer Valor padrão: 1000 Limite para o comprimento dos links em URL. Quando o comprimento ficar acima do limite, ele será substituído pelo formulário com botão. Isso é exigido já que alguns servidores web IIS tem problemas com URL s longas.
-
$cfg['CSPAllow']
¶ Tipo: string Valor padrão: ''
Linhas adicionais para incluir nos scripts permitidos e fontes de imagem na Política de Segurança de Conteúdo.
This can be useful when you want to include some external JavaScript files in
config.footer.inc.php
orconfig.header.inc.php
, which would be normally not allowed by Content Security Policy.Para permitir alguns sites, apenas liste-os dentro da string:
$cfg['CSPAllow'] = 'example.com example.net';
Novo na versão 4.0.4.
-
$cfg['DisableMultiTableMaintenance']
¶ Tipo: boolean Valor padrão: false Na página de Estrutura do banco de dados, é possível marcar algumas tabelas e então escolhar uma operação como otimizar para muitas tabelas. Isso pode atrasar um servidor, portanto, definir isso como
true
previne esse tipo de operação múltipla de manutenção.
Configurações de tema¶
Por favor, modifique diretamente othemes/themename/scss/_variables.scss
, embora suas alterações vão ser substituídas na próxima atualização.
Customização de design¶
Tipo: boolean Valor padrão: true Quando configurado como verdadeiro, passar o mouse sobre um item no painel de Navegação faz com que aquele item seja marcado (o fundo é destacado).
-
$cfg['BrowsePointerEnable']
¶ Tipo: boolean Valor padrão: true Quando configurado como verdadeiro, passar sobre uma linha na página de Navegação faz com que aquela linha seja marcada (o fundo é destacado).
-
$cfg['BrowseMarkerEnable']
¶ Tipo: boolean Valor padrão: true Quando configurado como verdadeiro, uma linha de dados é marcada (o fundo é destacado) quando a linha é selecionada com a caixa de seleção.
-
$cfg['LimitChars']
¶ Tipo: integer Valor padrão: 50 Número máximo de caracteres mostrado em qualquer campo não-numério na visualização de naveador. Pode ser desligado pelo botão de ligar/desligar na página do navegador.
-
$cfg['RowActionLinks']
¶ Tipo: string Valor padrão: 'esquerda'
Define o lugar onde os links de linhas de tabela (Editar, Copiar, Deletar) devem ser colocados quando os conteúdos da tabela são mostrados (você pode mostrá-los no lado esquerdo, direito, ambos ou em lugar nenhum).
-
$cfg['RowActionLinksWithoutUnique']
¶ Tipo: boolean Valor padrão: false Define se deve mostrar os links de linha (Editar, Copiar, Excluir) e as caixas de seleção para operações em múltiplas linhas mesmo quando a seleção não possui uma unique key. O uso de ações de linha na ausência de uma chave única pode resultar em diferentes/mais linhas sendo afetadas, pois não há nenhuma forma garantida de selecionar a(s) linha(s) exata(s).
-
$cfg['RememberSorting']
¶ Tipo: boolean Valor padrão: true Se ativado, lembra a ordenação de cada tabela quando navegar por elas.
-
$cfg['TablePrimaryKeyOrder']
¶ Tipo: string Valor padrão: 'NENHUM'
Isso define a ordem de classificação padrão para as tabelas que tenham uma primary key quando não há ordem de classificação definida externamente. Valores aceitáveis: [‘NONE’, ‘ASC’, ‘DESC’]
-
$cfg['ShowBrowseComments']
¶ Tipo: boolean Valor padrão: true
-
$cfg['ShowPropertyComments']
¶ Tipo: boolean Valor padrão: true Definindo a variável correspondente para
true
você pode ativar a exibição de comentários de coluna na págima Procurar e Estrutura. Em modo navegador, os comentários são exibidos dentro do cabeçalho. Em modo propriedade, os comentários são exibidos usando uma linha tracejada formatada por CSS abaixo do nome da coluna. O comentário é exibido como uma tool-tip para aquela coluna.
-
$cfg['FirstDayOfCalendar']
¶ Tipo: integer Valor padrão: 0 This will define the first day of week in the calendar. The number can be set from 0 to 6, which represents the seven days of the week, Sunday to Saturday respectively. This value can also be configured by the user in Settings -> Features -> General -> First day of calendar field.
Campos de texto¶
-
$cfg['CharEditing']
¶ Tipo: string Valor padrão: 'entrada'
Define qual o tipo de controles de edição devem ser usados para colunas CHAR e VARCHAR. Aplica-se à edição de dados e também aos valores-padrão na edição da estrutura. Os valores possíveis são:
- input - isso permite limitar o tamanho do texto para o tamanho das colunas no MySQL, mas tem problemas com linhas novas em colunas
- textarea - nenhum problema com novas linhas em colunas, mas também não oferece limitação de comprimento
-
$cfg['MinSizeForInputField']
¶ Tipo: integer Valor padrão: 4 Define o tamanho mínimo para campos de entrada geradas por colunas CHAR e VARCHAR.
-
$cfg['MaxSizeForInputField']
¶ Tipo: integer Valor padrão: 60 Define o tamanho máximo para campos de entrada geradas por colunas CHAR e VARCHAR.
-
$cfg['TextareaCols']
¶ Tipo: integer Valor padrão: 40
-
$cfg['TextareaRows']
¶ Tipo: integer Valor padrão: 15
-
$cfg['CharTextareaCols']
¶ Tipo: integer Valor padrão: 40
-
$cfg['CharTextareaRows']
¶ Tipo: integer Valor padrão: 7 Número de colunas e linhas para textareas. Esse valor será enfatizado 2x para textareas de queries SQL e 1,25x para textareas SQL dentro da janela de queries.
Os valores char são usados para edição CHAR e VARCHAR (se configurados via
$cfg['CharEditing']
).Alterado na versão 5.0.0: The default value was changed from 2 to 7.
-
$cfg['LongtextDoubleTextarea']
¶ Tipo: boolean Valor padrão: true Define se as textareas para colunas LONGTEXT deverão ter tamanho dobrado.
-
$cfg['TextareaAutoSelect']
¶ Tipo: boolean Valor padrão: false Define se o textarea inteiro da box de queries deverá ser selecionado quando clicado.
-
$cfg['EnableAutocompleteForTablesAndColumns']
¶ Tipo: boolean Valor padrão: true Define se habilita o preenchimento automático para nomes de tabelas e colunas em qualquer caixa de consulta SQL.
Configurações de caixa de query SQL¶
-
$cfg['SQLQuery']['Edit']
¶ Tipo: boolean Valor padrão: true Define se mostra um link de edição para mudar a query em qualquer caixa de query SQL.
-
$cfg['SQLQuery']['Explain']
¶ Tipo: boolean Valor padrão: true Define se mostra um link para explicar uma query SELECT em qualquer caixa de query SQL.
-
$cfg['SQLQuery']['ShowAsPHP']
¶ Tipo: boolean Valor padrão: true Define se mostra um link para unir uma query em código PHP em qualquer caixa de query SQL.
-
$cfg['SQLQuery']['Refresh']
¶ Tipo: boolean Valor padrão: true Define se mostra um link para atualizar uma query em qualquer caixa de query SQL.
Diretórios de importar/salvar/subir do servidor web¶
Se o PHP estiver rodando em modo de segurança, todos os diretórios devem ter como dono o mesmo usuário dono dos scripts phpMyAdmin.
Se o diretório onde o phpMyAdmin está instalado estiver sujeito a uma restrição open_basedir
, você precisa criar um diretório temporário em algum diretório acessível ao interpretador PHP.
Por razões de segurança, todos os diretórios devem estar fora da árvore publicada pelo servidor web. Se você não puder evitar ter este diretório publicado pelo servidor web, limite o acesso a ele, seja pela configuração do servidor web (por exemplo, usando .htaccess ou arquivos web.config) ou colocando ao menos um arquivo index.html
vazio lá, para que a listagem de diretórios não seja possível. No entanto, enquanto o diretório for acessível pelo servidor web, um invasor pode adivinhar nomes de arquivos para baixá-los.
-
$cfg['UploadDir']
¶ Tipo: string Valor padrão: ''
O nome do diretório onde os arquivos SQL foram subidos por outros meios além do phpMyAdmin (por exemplo, FTP). Estes arquivos estão disponíveis sob uma caixa drop-down quando você clica no nome do banco de dados ou da tabela, então na aba Importar.
Se você quiser um diretório diferente para cada usuário, %u será substituído pelo nome do usuário.
Favor observar que os nomes dos arquivos devem ter sufixos “.sql” (ou “.sql.bz2” ou “.sql.gz” se o suporte para formatos comprimidos estiver ativado).
Essa função é útil quando seu arquivo é grande demais para ser subido via HTTP, ou quando o upload de arquivos estiver desativado no PHP.
Aviso
Por favor, consulte o topo deste capítulo (Diretórios de importar/salvar/subir do servidor web) para obter instruções sobre como configurar este diretório e como tornar o seu uso seguro.
Ver também
Veja 1.16 Eu não consigo subir arquivos de exportação grandes (memória, HTTP ou problemas de timeout). para alternativas.
-
$cfg['SaveDir']
¶ Tipo: string Valor padrão: ''
O nome do diretório do servidor web em que os arquivos exportados podem ser salvos.
Se você quiser um diretório diferente para cada usuário, %u será substituído pelo nome do usuário.
Favor notar que o diretório deve existir e tem que ser acessível para escrita para o usuário rodando o servidor web.
Aviso
Por favor, consulte o topo deste capítulo (Diretórios de importar/salvar/subir do servidor web) para obter instruções sobre como configurar este diretório e como tornar o seu uso seguro.
-
$cfg['TempDir']
¶ Tipo: string Valor padrão: './tmp/'
O nome do diretório onde os arquivos temporários podem ser armazenados. É usado para várias finalidades, atualmente:
- O cache de modelos que acelera o carregamento da página.
- Importação de Shapefiles ESRI, veja 6.30 Importação: Como posso importar Shapefiles ESRI?.
- Para contornar limitações de
open_basedir
para arquivos carregados, veja 1.11 Eu recebo uma ‘restrição open_basedir’ quando tento subir um arquivo a partir da aba de importação..
Esse diretório deve ter as permissões estritas ao máximo possível para que o único usuário exigido para acessar esse diretório seja aquele que rodar o servidor web. Se você tiver privilégios raiz, simplesmente torne este usuário o dono deste diretório e torne-o acessível somente a ele:
chown www-data:www-data tmp chmod 700 tmp
Se você não puder mudar o dono do diretório, você pode conseguir uma instalação similar usando ACL:
chmod 700 tmp setfacl -m "g:www-data:rwx" tmp setfacl -d -m "g:www-data:rwx" tmp
Se nenhuma das opções acima funcionar para você, você ainda pode criar um diretório com chmod 777, mas isso pode impor um risco aos outros usuários no sistema lendo e escrevendo dados neste diretório.
Aviso
Por favor, consulte o topo deste capítulo (Diretórios de importar/salvar/subir do servidor web) para obter instruções sobre como configurar este diretório e como tornar o seu uso seguro.
Configurações de vários monitores¶
-
$cfg['RepeatCells']
¶ Tipo: integer Valor padrão: 100 Repete os cabeçalhos a cada X células, ou 0 para desativar.
-
$cfg['EditInWindow']
¶ Tipo: boolean Valor padrão: true Ver também
Obsoleto desde a versão 4.3.0: This setting was removed.
-
$cfg['QueryWindowWidth']
¶ Tipo: integer Valor padrão: 550 Obsoleto desde a versão 4.3.0: This setting was removed.
-
$cfg['QueryWindowHeight']
¶ Tipo: integer Valor padrão: 310 Obsoleto desde a versão 4.3.0: This setting was removed.
-
$cfg['QueryHistoryDB']
¶ Tipo: boolean Valor padrão: false
-
$cfg['QueryWindowDefTab']
¶ Tipo: string Valor padrão: 'sql'
Obsoleto desde a versão 4.3.0: This setting was removed.
-
$cfg['QueryHistoryMax']
¶ Tipo: integer Valor padrão: 25 Se
$cfg['QueryHistoryDB']
estiver definido comotrue
, todas as queries são guardadas numa tabela, que tem que ser criada por você (veja$cfg['Servers'][$i]['history']
). Se definido comofalse
, todas as suas queries serão adicionadas ao formulário, mas elas permanecerão salvas somente enquanto sua janela estiver aberta.Quando usar a janela de query baseada em JavaScript, ela sempre será atualizada quando você clicar numa nova tabela/bd para navegar e ela irá focar se você clicar em Edit SQL depois de usar uma query. Você pode suprimir a atualização da janela de query marcando na caixa :guilabel:Do not overwrite this query from outside the window` abaixo do textarea da query. Então você pode navegar tabelas/bds no fundo sem perder os conteúdos do textarea, então isso é especialmente útil quando estiver compondo uma query com tabelas que você primeiro precisa visualizar. O checkbox irá automaticamente ser marcado sempre que vocẽ mudar os conteúdos do textarea. Favor desmarcar o botão sempre que você definitivamente quiser que a janela de query seja atualiza embora você tenha feito alterações.
Se
$cfg['QueryHistoryDB']
estiver definido comotrue
, você pode especificar a quantidade de itens de histórico guardada usando$cfg['QueryHistoryMax']
.
Tipo: boolean Valor padrão: true Novo na versão 6.0.0.
Permitir que os usuários criem marcadores que estejam disponíveis para todos os outros usuários
-
$cfg['BrowseMIME']
¶ Tipo: boolean Valor padrão: true Ativa Transformações.
-
$cfg['MaxExactCount']
¶ Tipo: integer Valor padrão: 50000 Para tabelas InnoDB, determina quão grande as tabelas do phpMyAdmin devem ficar quando fizer uma contagem de linhas exata usando
SELECT COUNT
. Se a contagem de linhas aproximada que for retornada porSHOW TABLE STATUS
for menor que este valor,SELECT COUNT
será usado, caso contrário, o valor aproximado será usado.Alterado na versão 4.8.0: O valor padrão foi reduzido para 50000 por questões de desempenho.
Alterado na versão 4.2.6: O valor padrão foi alterado para 500000.
-
$cfg['MaxExactCountViews']
¶ Tipo: integer Valor padrão: 0 Para VIEWs, já que obter a contagem exata poderia causar um impacto no desempenho, esse valor é o máximo a ser mostrado, usando um
SELECT COUNT ... LIMIT
. Definir isso para 0 anula qualquer contagem de linhas.
-
$cfg['NaturalOrder']
¶ Tipo: boolean Valor padrão: true Ordena os nomes de bancos de dados e tabelas para a ordem natural (por exemplo, t1, t2 … t10). Atualmente implementada no painel de navegação e visualização do banco de dados, para a lista de tabelas.
-
$cfg['InitialSlidersState']
¶ Tipo: string Valor padrão: 'fechado'
Se definido como
'closed'
, os deslizadores visuais estão inicialmente num estado fechado. Um valor de'open'
faz o contrário. Para desativar completamente todos os deslizadores visuais, use'disabled'
.
-
$cfg['UserprefsDisallow']
¶ Tipo: vetor Valor padrão: array() Contains names of configuration options (keys in
$cfg
array) that users can’t set through user preferences. For possible values, refer to classes undersrc/Config/Forms/User/
.
-
$cfg['UserprefsDeveloperTab']
¶ Tipo: boolean Valor padrão: false Novo na versão 3.4.0.
Ativa nas preferências de usuário uma aba contendo opções para desenvolvedores do phpMyAdmin.
Títulos de páginas¶
The page title displayed by your browser’s window or tab title bar can be customized. You can use 6.27 Quais strings de formatação eu posso usar?. The following four options allow customizing various parts of the phpMyAdmin interface. Note that the login page title cannot be changed.
-
$cfg['TitleTable']
¶ Tipo: string Valor padrão: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ / @TABLE@ | @PHPMYADMIN@'
-
$cfg['TitleDatabase']
¶ Tipo: string Valor padrão: '@HTTP_HOST@ / @VSERVER@ / @DATABASE@ | @PHPMYADMIN@'
-
$cfg['TitleServer']
¶ Tipo: string Valor padrão: '@HTTP_HOST@ / @VSERVER@ | @PHPMYADMIN@'
-
$cfg['TitleDefault']
¶ Tipo: string Valor padrão: '@HTTP_HOST@ | @PHPMYADMIN@'
Configurações de gerente de temas¶
-
$cfg['ThemeManager']
¶ Tipo: boolean Valor padrão: true Ativa temas selecionáveis pelo usuário. Veja a referência 2.7 Usando e criando temas.
-
$cfg['ThemeDefault']
¶ Tipo: string Valor padrão: 'pmahomme'
The default theme (a subdirectory under
./public/themes/
).
-
$cfg['ThemePerServer']
¶ Tipo: boolean Valor padrão: false Define se ative um tema diferente para cada servidor.
-
$cfg['FontSize']
¶ Tipo: string Valor padrão: ‘82%’ Obsoleto desde a versão 5.0.0: Esta configuração foi removida pois o navegador é mais eficiente, assim não há necessidade dessa opção.
Tamanho da fonte a ser usada, é aplicado no CSS.
Queries padrão¶
-
$cfg['DefaultQueryTable']
¶ Tipo: string Valor padrão: 'SELECT * FROM @TABLE@ WHERE 1'
-
$cfg['DefaultQueryDatabase']
¶ Tipo: string Valor padrão: ''
Queries padrão que serão mostradas nas caixas de query quando o usuário não especificar nenhuma. Você pode usar o padrão 6.27 Quais strings de formatação eu posso usar?.
Configurações MySQL¶
-
$cfg['DefaultFunctions']
¶ Tipo: vetor Valor padrão: array('FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'NOW')
Functions selected by default when inserting/changing row, Functions are defined for meta types as (
FUNC_NUMBER
,FUNC_DATE
,FUNC_CHAR
,FUNC_SPATIAL
,FUNC_UUID
) and forfirst_timestamp
, which is used for first timestamp column in table.Examplo de configuração
$cfg['DefaultFunctions'] = [ 'FUNC_CHAR' => '', 'FUNC_DATE' => '', 'FUNC_NUMBER' => '', 'FUNC_SPATIAL' => 'ST_GeomFromText', 'FUNC_UUID' => 'UUID', 'first_timestamp' => 'UTC_TIMESTAMP', ];
Opções padrão para Transformações¶
-
$cfg['DefaultTransformations']
¶ Tipo: vetor Valor padrão: Um vetor com chaves-valores listados abaixo
-
$cfg['DefaultTransformations']['Substring']
¶ Tipo: vetor Valor padrão: array(0, ‘all’, ‘…’)
-
$cfg['DefaultTransformations']['Bool2Text']
¶ Tipo: vetor Valor padrão: array(‘T’, ‘F’)
-
$cfg['DefaultTransformations']['External']
¶ Tipo: vetor Valor padrão: array(0, ‘-f /dev/null -i -wrap -q’, 1, 1)
-
$cfg['DefaultTransformations']['PreApPend']
¶ Tipo: vetor Valor padrão: array(‘’, ‘’)
-
$cfg['DefaultTransformations']['Hex']
¶ Tipo: vetor Valor padrão: array(‘2’)
-
$cfg['DefaultTransformations']['DateFormat']
¶ Tipo: vetor Valor padrão: array(0, ‘’, ‘local’)
-
$cfg['DefaultTransformations']['Inline']
¶ Tipo: vetor Valor padrão: array(‘100’, 100)
-
$cfg['DefaultTransformations']['TextImageLink']
¶ Tipo: vetor Valor padrão: array(‘’, 100, 50)
-
$cfg['DefaultTransformations']['TextLink']
¶ Tipo: vetor Valor padrão: array(‘’, ‘’, ‘’)
Configurações do console¶
Nota
Essas configurações geralmente devem ser alteradas pelo usuário.
-
$cfg['Console']['StartHistory']
¶ Tipo: boolean Valor padrão: false Mostrar histórico de consulta ao iniciar
-
$cfg['Console']['AlwaysExpand']
¶ Tipo: boolean Valor padrão: false Sempre expandir mensagens de consulta
-
$cfg['Console']['CurrentQuery']
¶ Tipo: boolean Valor padrão: true Mostrar consulta de navegação atual
-
$cfg['Console']['EnterExecutes']
¶ Tipo: boolean Valor padrão: false Execute consultas com Enter e insira nova linha com Shift + Enter
-
$cfg['Console']['DarkTheme']
¶ Tipo: boolean Valor padrão: false Mudar para o tema escuro
-
$cfg['Console']['Mode']
¶ Tipo: string Valor padrão: ‘info’ Modo console
-
$cfg['Console']['Height']
¶ Tipo: integer Valor padrão: 92 Altura do console
Desenvolvedor¶
Aviso
Essas configurações podem causar um efeito gigante no desempenho ou na segurança.
-
$cfg['environment']
¶ Tipo: string Valor padrão: 'production'
Definir o ambiente de trabalho.
É necessário alterar apenas quando você estiver desenvolvendo o próprio phpMyAdmin. O modo
development
pode exibir informações de debug em certos lugares.Os valores possíveis são
'production'
ou'development'
.
-
$cfg['DBG']
¶ Tipo: vetor Valor padrão: []
-
$cfg['DBG']['sql']
¶ Tipo: boolean Valor padrão: false Ativa a exibição dos logs de consultas e dos tempos de execução na aba Depuração SQL do console.
-
$cfg['DBG']['sqllog']
¶ Tipo: boolean Valor padrão: false Ativa os logs de consultas e tempos de execução no syslog. Requer que
$cfg['DBG']['sql']
esteja habilitado.
-
$cfg['DBG']['demo']
¶ Tipo: boolean Valor padrão: false Ative para permitir que o servidor se apresente como servidor de demonstração. Isso é usado pelo servidor de demonstração do phpMyAdmin <https://www.phpmyadmin.net/try/>.
Atualmente muda o seguinte comportamento:
- Há uma mensagem de boas-vindas na página principal.
- There is footer information about demo server and used Git revision.
- O script de configuração é habilitado mesmo com uma configuração existente.
- A configuração não tenta se conectar ao servidor MySQL.
-
$cfg['DBG']['simple2fa']
¶ Tipo: boolean Valor padrão: false Pode ser usado para testar a autenticação de dois fatores usando Autenticação de dois fatores simples.
Exemplos¶
Veja os seguintes trechos de configuração para configurações típicas do phpMyAdmin.
Exemplo básico¶
Exemplo de arquivo de configuração, que pode ser copiado para config.inc.php
para obter um modelo de configuração básica; ele é distribuído com o phpMyAdmin como config.sample.inc.php
. Observe que ele não contém todas as opções de configuração, apenas as mais utilizadas.
<?php
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
* All directives are explained in documentation in the doc/ folder
* or at <https://docs.phpmyadmin.net/>.
*/
declare(strict_types=1);
/**
* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
*/
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/**
* Servers configuration
*/
$i = 0;
/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
/**
* phpMyAdmin configuration storage settings.
*/
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Storage database and tables */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
/**
* End of servers configuration
*/
/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
/**
* Whether to display icons or text or both icons and text in table row
* action segment. Value can be either of 'icons', 'text' or 'both'.
* default = 'both'
*/
//$cfg['RowActionType'] = 'icons';
/**
* Defines whether a user should be displayed a "show all (records)"
* button in browse mode or not.
* default = false
*/
//$cfg['ShowAll'] = true;
/**
* Number of rows displayed when browsing a result set. If the result
* set contains more rows, "Previous" and "Next".
* Possible values: 25, 50, 100, 250, 500
* default = 25
*/
//$cfg['MaxRows'] = 50;
/**
* Disallow editing of binary fields
* valid values are:
* false allow editing
* 'blob' allow editing except for BLOB fields
* 'noblob' disallow editing except for BLOB fields
* 'all' disallow editing
* default = 'blob'
*/
//$cfg['ProtectBinary'] = false;
/**
* Default language to use, if not browser-defined or user-defined
* (you find all languages in the locale folder)
* uncomment the desired line:
* default = 'en'
*/
//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';
/**
* How many columns should be used for table display of a database?
* (a value larger than 1 results in some information being hidden)
* default = 1
*/
//$cfg['PropertiesNumColumns'] = 2;
/**
* Set to true if you want DB-based query history.If false, this utilizes
* JS-routines to display query history (lost by window close)
*
* This requires configuration storage enabled, see above.
* default = false
*/
//$cfg['QueryHistoryDB'] = true;
/**
* When using DB-based query history, how many entries should be kept?
* default = 25
*/
//$cfg['QueryHistoryMax'] = 100;
/**
* Whether or not to query the user before sending the error report to
* the phpMyAdmin team when a JavaScript error occurs
*
* Available options
* ('ask' | 'always' | 'never')
* default = 'ask'
*/
//$cfg['SendErrorReports'] = 'always';
/**
* 'URLQueryEncryption' defines whether phpMyAdmin will encrypt sensitive data from the URL query string.
* 'URLQueryEncryptionSecretKey' is a 32 bytes long secret key used to encrypt/decrypt the URL query string.
*/
//$cfg['URLQueryEncryption'] = true;
//$cfg['URLQueryEncryptionSecretKey'] = '';
/**
* You can find more configuration options in the documentation
* in the doc/ folder or at <https://docs.phpmyadmin.net/>.
*/
Aviso
Não use o usuário de controle ‘pma’ se ele ainda não existir e não use ‘pmapass’ como senha.
Exemplo de autenticação de login¶
Este exemplo usa examples/signon.php
para demonstrar o uso do Modo de autenticação tradicional:
<?php
$i = 0;
$i++;
$cfg['Servers'][$i]['auth_type'] = 'signon';
$cfg['Servers'][$i]['SignonSession'] = 'SignonSession';
$cfg['Servers'][$i]['SignonURL'] = 'examples/signon.php';
Exemplo de login automático limitado por endereço IP¶
Se você quiser se logar automaticamente ao acessar o phpMyAdmin localmente enquanto pede uma senha ao acessar remotamente, você pode fazê-lo usando o seguinte trecho:
if ($_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'yourpassword';
} else {
$cfg['Servers'][$i]['auth_type'] = 'cookie';
}
Nota
A filtragem baseada em endereços IP não é confiável pela internet, use-a apenas para endereços locais.
Exemplo de uso de múltiplos servidores MySQL¶
Você pode configurar um número qualquer de servidores usando $cfg['Servers']
, o exemplo a seguir mostra dois deles:
<?php
// The string is a hexadecimal representation of a 32-bytes long string of random bytes.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
$i = 0;
$i++; // server 1 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no1';
$cfg['Servers'][$i]['host'] = 'localhost';
// more options for #1 ...
$i++; // server 2 :
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['verbose'] = 'no2';
$cfg['Servers'][$i]['host'] = 'remote.host.addr';//or ip:'10.9.8.1'
// this server must allow remote clients, e.g., host 10.9.8.%
// not only in mysql.host but also in the startup configuration
// more options for #2 ...
// end of server sections
$cfg['ServerDefault'] = 0; // to choose the server on startup
// further general options ...
Google Cloud SQL com SSL¶
To connect to Google Could SQL, you currently need to disable certificate verification. This is caused by the certificate being issued for CN matching your instance name, but you connect to an IP address and PHP tries to match these two. With verification you end up with error message like:
Peer certificate CN=`api-project-851612429544:pmatest' did not match expected CN=`8.8.8.8'
Aviso
Com a verificação desabilitada seu tráfego é criptografado, mas você fica aberto a ataques man-in-the-middle.
Para conectar o phpMyAdmin ao Google Cloud SQL usando SSL, baixe os certificados do cliente e do servidor e informe o phpMyAdmin para usá-los:
// IP address of your instance
$cfg['Servers'][$i]['host'] = '8.8.8.8';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// Client secret key
$cfg['Servers'][$i]['ssl_key'] = '../client-key.pem';
// Client certificate
$cfg['Servers'][$i]['ssl_cert'] = '../client-cert.pem';
// Server certification authority
$cfg['Servers'][$i]['ssl_ca'] = '../server-ca.pem';
// Disable SSL verification (see above note)
$cfg['Servers'][$i]['ssl_verify'] = false;
Amazon RDS Aurora with SSL¶
To connect phpMyAdmin to an Amazon RDS Aurora MySQL database instance using SSL, download the CA server certificate and tell phpMyAdmin to use it:
// Address of your instance
$cfg['Servers'][$i]['host'] = 'replace-me-cluster-name.cluster-replace-me-id.replace-me-region.rds.amazonaws.com';
// Use SSL for connection
$cfg['Servers'][$i]['ssl'] = true;
// You need to have the region CA file and the authority CA file (2019 edition CA for example) in the PEM bundle for it to work
$cfg['Servers'][$i]['ssl_ca'] = '../rds-combined-ca-bundle.pem';
// Enable SSL verification
$cfg['Servers'][$i]['ssl_verify'] = true;
Ver também
Usando SSL para conexão ao servidor de banco de dados,
$cfg['Servers'][$i]['ssl']
,
$cfg['Servers'][$i]['ssl_ca']
,
$cfg['Servers'][$i]['ssl_verify']
Ver também
- Current RDS CA bundle for all regions https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
- The RDS CA (2019 edition) for the region eu-west-3 without the parent CA https://s3.amazonaws.com/rds-downloads/rds-ca-2019-eu-west-3.pem
- List of available Amazon RDS CA files
- Amazon MySQL Aurora security guide
- Amazon certificates bundles per region
reCaptcha using hCaptcha¶
$cfg['CaptchaApi'] = 'https://www.hcaptcha.com/1/api.js';
$cfg['CaptchaCsp'] = 'https://hcaptcha.com https://*.hcaptcha.com';
$cfg['CaptchaRequestParam'] = 'h-captcha';
$cfg['CaptchaResponseParam'] = 'h-captcha-response';
$cfg['CaptchaSiteVerifyURL'] = 'https://hcaptcha.com/siteverify';
// This is the secret key from hCaptcha dashboard
$cfg['CaptchaLoginPrivateKey'] = '0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// This is the site key from hCaptcha dashboard
$cfg['CaptchaLoginPublicKey'] = 'xxx-xxx-xxx-xxx-xxxx';
Ver também
Ver também
reCaptcha using Turnstile¶
$cfg['CaptchaMethod'] = 'checkbox';
$cfg['CaptchaApi'] = 'https://challenges.cloudflare.com/turnstile/v0/api.js';
$cfg['CaptchaCsp'] = 'https://challenges.cloudflare.com https://static.cloudflareinsights.com';
$cfg['CaptchaRequestParam'] = 'cf-turnstile';
$cfg['CaptchaResponseParam'] = 'cf-turnstile-response';
$cfg['CaptchaLoginPublicKey'] = '0xxxxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = '0x4AAAAAAAA_xx_xxxxxxxxxxxxxxxxxxxx';
$cfg['CaptchaSiteVerifyURL'] = 'https://challenges.cloudflare.com/turnstile/v0/siteverify';
Ver também
Ver também
reCaptcha using Google reCaptcha v2/v3¶
$cfg['CaptchaLoginPublicKey'] = 'xxxxxxxxxxxxxxxx-xxxxxxxxxxxx';
$cfg['CaptchaLoginPrivateKey'] = 'xxxxxxxxx-xxxxxxxxxxxxxx';
// Remove it if you dot not want the checkbox mode
$cfg['CaptchaMethod'] = 'checkbox';
Ver também
Ver também
Guia de Usuário¶
Configurando o phpMyAdmin¶
Existem muitas configurações que podem ser usadas para personalizar a interface. Essas configurações estão descritas em Configuração. Existem várias camadas da configuração.
As configurações globais podem ser configuradas no config.inc.php
, conforme descrito em Configuração. Esta é a única maneira de configurar conexões a bancos de dados e outras configurações gerais do sistema.
Além disso, existem configurações de usuário que podem ser armazenadas persistentemente em Armazenamento de configurações do phpMyAdmin, possivelmente configuradas automaticamente através do Configuração Zero. Se as Armazenamento de configurações do phpMyAdmin não estiverem configuradas, as configurações são temporariamente armazenadas nos dados da sessão; estas são válidas somente até você efetuar o logout.
Você também pode salvar a configuração de usuário para uso posterior, seja baixando como um arquivo ou para o armazenamento local do navegador. Você pode encontrar essas duas opções na aba Settings. As configurações armazenadas no armazenamento local do navegador serão oferecidas automaticamente para carregamento quando você fizer o login no phpMyAdmin.
Autenticação de dois fatores¶
Novo na versão 4.8.0.
Desde o phpMyAdmin 4.8.0, você pode configurar para que a autenticação de dois fatores seja usada ao iniciar a sessão. Para isso, primeiro você precisa configurar as Armazenamento de configurações do phpMyAdmin. Assim que isso for feito, cada usuário poderá optar pelo segundo fator de autenticação nas Settings.
Ao executar o phpMyAdmin a partir do repositório de fontes do Git, as dependências devem ser instaladas manualmente; A maneira típica de fazê-lo é com o comando:
composer require pragmarx/google2fa-qrcode bacon/bacon-qr-code
Ou ao usar uma chave de segurança física com FIDO U2F:
composer require code-lts/u2f-php-server
Aplicativo de Autenticação (2FA)¶
Usar um aplicativo para autenticação é uma abordagem bastante comum baseada em HOTP e TOTP. Ele é baseado na transmissão de uma chave privada do phpMyAdmin para o aplicativo de autenticação e o aplicativo pode gerar um código único com base nessa chave. A maneira mais fácil de inserir a chave no aplicativo do phpMyAdmin é por meio da digitalização de um código QR.
Há dezenas de aplicativos disponíveis para celulares para implementar esses padrões, os mais utilizados incluem:
Chave de Segurança de Hardware (FIDO U2F)¶
Usar tokens de hardware é considerado mais seguro do que uma solução baseada em software. O phpMyAdmin suporta tokens FIDO U2F.
Existem vários fabricantes desses tokens, por exemplo:
Autenticação de dois fatores simples¶
Esta autenticação está incluída apenas para fins de teste e demonstração, pois ela não fornece de fato uma autenticação de dois fatores, apenas pede ao usuário para confirmar o login clicando no botão.
Ela não deve ser usada em produção e fica desativada, a menos que o $cfg['DBG']['simple2fa']
seja habilitado.
Transformações¶
Nota
You need to have configured the Armazenamento de configurações do phpMyAdmin to use the transformations feature.
Introdução¶
To enable transformations, you have to set up the column_info
table and the proper directives. Please see the Configuração on how to do so.
phpMyAdmin has two different types of transformations: browser display transformations, which affect only how the data is shown when browsing through phpMyAdmin; and input transformations, which affect a value prior to being inserted through phpMyAdmin. You can apply different transformations to the contents of each column. Each transformation has options to define how it will affect the stored data.
Say you have a column filename
which contains a filename. Normally
you would see in phpMyAdmin only this filename. Using display transformations
you can transform that filename into a HTML link, so you can click
inside of the phpMyAdmin structure on the column’s link and will see
the file displayed in a new browser window. Using transformation
options you can also specify strings to append/prepend to a string or
the format you want the output stored in.
For a general overview of all available transformations and their
options, you can either go to the Change
link for an existing column
or from the dialog to create a new column, in either case there is a link
on that column structure page for “Browser display transformation” and
“Input transformation” which will show more information about each
transformation that is available on your system.
Para um tutorial em como você pode usar transformações efetivamente, veja nossa seção de links na página oficial do phpMyAdmin.
Utilização¶
Go to the table structure page (reached by clicking on the ‘Structure’ link for a table). There click on “Change” (or the change icon) and there you will see the five transformation–related fields at the end of the line. They are called ‘Media type’, ‘Browser transformation’ and ‘Transformation options’.
- The field ‘Media type’ is a drop-down field. Select the Media type that corresponds to the column’s contents. Please note that many transformations are inactive until a Media type is selected.
- The field ‘Browser display transformation’ is a drop-down field. You can choose from a hopefully growing amount of pre-defined transformations. See below for information on how to build your own transformation. There are global transformations and mimetype-bound transformations. Global transformations can be used for any mimetype. They will take the mimetype, if necessary, into regard. Mimetype-bound transformations usually only operate on a certain mimetype. There are transformations which operate on the main mimetype (like ‘image’), which will most likely take the subtype into regard, and those who only operate on a specific subtype (like ‘image/jpeg’). You can use transformations on mimetypes for which the function was not defined for. There is no security check for you selected the right transformation, so take care of what the output will be like.
- The field ‘Browser display transformation options’ is a free-type textfield. You have
to enter transform-function specific options here. Usually the
transforms can operate with default options, but it is generally a
good idea to look up the overview to see which options are necessary.
Much like the ENUM/SET-Fields, you have to split up several options
using the format ‘a’,’b’,’c’,…(NOTE THE MISSING BLANKS). This is
because internally the options will be parsed as an array, leaving the
first value the first element in the array, and so forth. If you want
to specify a MIME character set you can define it in the
transformation_options. You have to put that outside of the pre-
defined options of the specific mime-transform, as the last value of
the set. Use the format “’; charset=XXX’”. If you use a transform, for
which you can specify 2 options and you want to append a character
set, enter “‘first parameter’,’second parameter’,’charset=us-ascii’”.
You can, however use the defaults for the parameters: “’’,’’,’charset
=us-ascii’”. The default options can be configured using
$cfg['DefaultTransformations']
. - ‘Input transformation’ is another drop-down menu that corresponds exactly with the instructions above for “Browser display transformation” except these these affect the data before insertion in to the database. These are most commonly used to either provide a specialized editor (for example, using the phpMyAdmin SQL editor interface) or selector (such as for uploading an image). It’s also possible to manipulate the data such as converting an IPv4 address to binary or parsing it through a regular expression.
- Finally, ‘Input transformation options’ is the equivalent of the “Browser display transformation options” section above and is where optional and required parameters are entered.
Estrutura de arquivos¶
All specific transformations for mimetypes are defined through class
files in the directory src/Plugins/Transformations/
. Each of
them extends a certain transformation abstract class declared in
src/Plugins/Transformations/Abs
.
They are stored in files to ease customization and to allow easy adding of new or custom transformations.
Because the user cannot enter their own mimetypes, it is kept certain that the transformations will always work. It makes no sense to apply a transformation to a mimetype the transform-function doesn’t know to handle.
There is a file called src/Plugins/Transformations.php
that provides some
basic functions which can be included by any other transform function.
The file name convention is [Mimetype]_[Subtype]_[Transformation
Name].php
, while the abstract class that it extends has the
name [Transformation Name]TransformationsPlugin
. All of the
methods that have to be implemented by a transformations plug-in are:
- getMIMEType() e getMIMESubtype() na classe principal;
- getName(), getInfo() e applyTransformation() nas classes abstratas extendidas.
Os métodos getMIMEType(), getMIMESubtype() e getName() retornam o nome do tipo MIME, o subtipo MIME e a transformação respectivamente. getInfo() retorna a descrição da transformação e opções disponíveis que ela recebe e applyTransformation() é o método que faz o trabalho real do plugin de transformação.
Please see the src/Plugins/Transformations/TEMPLATE
and
src/Plugins/Transformations/TEMPLATE_ABSTRACT
files for adding
your own transformation plug-in. You can also generate a new
transformation plug-in (with or without the abstract transformation
class), by using
scripts/transformations_generator_plugin.sh
or
scripts/transformations_generator_main_class.sh
.
O método applyTransformation() sempre recebe três variáveis:
- $buffer - contém o texto dentro de um campo. Esse é o texto que você quer transformar.
- $options - contém qualquer opção declarada por usuário para uma função de transformação como um array.
- $meta - Contains an object with information about your column. The data is drawn from the output of the mysql_fetch_field() function. This means, all object properties described on the manual page are available in this variable and can be used to transform a column accordingly to unsigned/zerofill/not_null/… properties. The $meta->mimetype variable contains the original Media type of the column (i.e. ‘text/plain’, ‘image/jpeg’ etc.)
Favoritos¶
Nota
Você precisa ter configurado as Armazenamento de configurações do phpMyAdmin para usar o recurso de favoritos.
Armazenando favoritos¶
Qualquer consulta efetuada pode ser marcada como favorita na página onde os resultados são exibidos. Você encontrará um botão com Bookmark this query logo no fim da página. Assim que você tiver armazenado um favorito, essa consulta é vinculada ao banco de dados. Agora você pode acessar um menu suspenso de favoritos em cada página em que a caixa de consulta aparece para esse banco de dados.
Variáveis dentro de favoritos¶
Dentro de uma consulta, você também pode adicionar espaços reservados para variáveis. Isso é feito inserindo na consulta SQL comentários entre /*
e */
. A string especial [VARIABLE{variable-number}]
é usada dentro dos comentários. Esteja ciente de que toda a consulta menos os comentários SQL devem ser válidos, caso contrário, você não poderá armazená-la como favorita. Note também que o texto ‘VARIABLE’ diferencia maiúsculas de minúsculas.
Quando você executar o favorito, tudo que for digitado nas caixas de entrada Variáveis, na página da caixa de consulta, substituirá as strings /*[VARIABLE{variable-number}]*/
na sua consulta armazenada.
Lembre-se também de que todo o resto dentro da string /*[VARIABLE{variable-number}]*/
permanecerá do jeito que está, mas serão removidos os caracteres /**/
. Então você pode usar:
/*, [VARIABLE1] AS myname */
que será expandido para
, VARIABLE1 as myname
em sua consulta, onde VARIABLE1 é a string que você inseriu na caixa de entrada Variável 1.
Um exemplo mais complexo, digamos que você armazenou esta consulta:
SELECT Name, Address FROM addresses WHERE 1 /* AND Name LIKE '%[VARIABLE1]%' */
Se você deseja inserir “phpMyAdmin” como a variável para a consulta armazenada, a consulta completa será:
SELECT Name, Address FROM addresses WHERE 1 AND Name LIKE '%phpMyAdmin%'
OBSERVE A AUSÊNCIA DE ESPAÇOS dentro do trecho /**/
. Qualquer espaço inserido lá irá mais tarde ser inserido também como espaço na sua consulta e isso pode levar a resultados inesperados, especialmente quando usada a expansão de variável dentro de uma expressão “LIKE ‘’”.
Explorando uma tabela usando um favorito¶
Quando o favorito tiver o mesmo nome da tabela, ele será usado como a consulta ao explorar essa tabela.
Gerenciamento de usuários¶
O gerenciamento de usuários é o processo de controlar quais usuários podem se conectar ao servidor MySQL e quais permissões eles têm em cada banco de dados. O phpMyAdmin não lida com o gerenciamento de usuários, mas passa o nome de usuário e a senha para o MySQL, que por sua vez determina se um usuário pode executar uma ação específica. Dentro do phpMyAdmin, os administradores têm controle total sobre a criação de usuários, visualização e edição de privilégios para usuários existentes e remoção de usuários.
Within phpMyAdmin, user management is controlled via the User accounts tab from the main page. Users can be created, edited, and removed.
Criando um novo usuário¶
To create a new user, click the Add user account link near the bottom of the User accounts page (you must be a “superuser”, e.g., user “root”). Use the textboxes and drop-downs to configure the user to your particular needs. You can then select whether to create a database for that user and grant specific global privileges. Once you’ve created the user (by clicking Go), you can define that user’s permissions on a specific database (don’t grant global privileges in that case). In general, users do not need any global privileges (other than USAGE), only permissions for their specific database.
Editando um usuário existente¶
To edit an existing user, simply click the pencil icon to the right of that user in the User accounts page. You can then edit their global- and database-specific privileges, change their password, or even copy those privileges to a new user.
Excluindo um usuário¶
From the User accounts page, check the checkbox for the user you wish to remove, select whether or not to also remove any databases of the same name (if they exist), and click Go.
Atribuindo privilégios ao usuário para um banco de dados específico¶
Os usuários são atribuídos a bancos de dados editando o registro do usuário (a partir do link User accounts na página inicial). Se você estiver criando um usuário especificamente para uma determinada tabela, você terá que criar primeiro o usuário (sem privilégios globais) e depois voltar e editar esse usuário para adicionar a tabela e privilégios para a tabela individual.
Relações¶
O phpMyAdmin permite relacionamentos (semelhantes às chaves estrangeiras) usando métodos MySQL-nativos (InnoDB) quando disponíveis e passando para recursos especiais do phpMyAdmin somente quando necessário. Existem duas maneiras de editar essas relações, com a vizualização de relação e o designer de arrastar-e-soltar - ambos explicados nesta página.
Nota
Você precisa configurar o Armazenamento de configurações do phpMyAdmin para usar as relações exclusivas do phpMyAdmin.
Informações técnicas¶
Atualmente, o único tipo de tabela MySQL que suporta relacionamentos nativamente é InnoDB. Ao usar uma tabela InnoDB, o phpMyAdmin criará relações reais do InnoDB que serão impostas pelo MySQL, independentemente do aplicativo que acessa o banco de dados. No caso de qualquer outro tipo de tabela, o phpMyAdmin impõe as relações internamente e essas relações não são aplicadas a nenhuma outra aplicação.
Visão de relação(ões)¶
Para fazê-lo funcionar, primeiro você deve criar o [[pmadb|pmadb]] corretamente. Uma vez que esteja configurado, selecione a página “Estrutura” de uma tabela. Abaixo da definição da tabela é mostrado um link chamado “Visualização de Relação”. Ao clicar nesse link, será mostrada uma página que lhe permite criar um link para outra tabela para quaisquer campos (a maioria). Somente as CHAVES PRIMÁRIAS são mostradas lá, então se o campo que você está se referindo não for mostrado, provavelmente você está fazendo algo errado. O menu suspenso na parte inferior é o campo que será usado como nome para um registro.
Exemplo de visualização de relações¶


Digamos que você tenha categorias e links e uma categoria pode conter vários links. Sua estrutura de tabela seria algo assim:
- category.category_id (deve ser único)
- category.name
- link.link_id
- link.category_id
- link.uri.
Abra a página de visualização de relação (abaixo da estrutura da tabela) para a tabela link e para o campo category_id, você seleciona category.category_id como registro mestre.
Se você procurar agora a tabela link, o campo category_id será um hiperlink clicável para o registro apropriado da categoria. Mas tudo que você vê é apenas o category_id, e não o nome da categoria.

Para corrigir isso, abra a visualização de relação da tabela category e no menu suspenso na parte inferior, selecione “nome”. Agora se você procurar a tabela link novamente e passar o mouse sobre o hiperlink category_id, o valor da categoria relacionada será mostrado como dica.

Designer¶
O recurso do Designer é uma maneira gráfica de criar, editar e exibir as relações do phpMyAdmin. Essas relações são compatíveis com as criadas na visão de relação do phpMyAdmin.
Para usar esse recurso, você precisa de um Armazenamento de configurações do phpMyAdmin configurado corretamente e deve ter o $cfg['Servers'][$i]['table_coords']
configurado.
Para usar o designer, selecione a página de estrutura de um banco de dados e procure a aba Designer.
Para exportar a visão para PDF, você deve criar as páginas PDF primeiro. O Designer cria o layout, como as tabelas devem ser exibidas. Para enfim exportar a visão, você deve criar isso com uma página PDF e selecionar seu layout, que você criou com o designer.
Gráficos¶
Novo na versão 3.4.0.
Desde a versão 3.4.0 do phpMyAdmin, você pode facilmente gerar gráficos de uma consulta SQL clicando no link “Exibir gráfico” na área “Operações de resultados da consulta”.

Uma janela flutuante “Exibir gráfico” é mostrada, na qual você pode personalizar o gráfico com as seguintes opções.
- Chart type: Allows you to choose the type of chart. Supported types are bar charts, column charts, line charts, spline charts, area charts, pie charts and timeline charts (only the chart types applicable for current series selection are offered).
- Eixo X: Permite escolher o campo para o eixo principal.
- Série: Permite escolher séries para o gráfico. Você pode escolher várias séries.
- Título: Permite especificar um título para o gráfico, que é exibido acima do gráfico.
- Rótulos do eixo X e do eixo Y: Permite especificar rótulos para os eixos.
- Start row and a number of rows: Allows generating charts only for a specified number of rows of the results set.

Implementação do gráfico¶
Os gráficos no phpMyAdmin são desenhados usando a biblioteca jQuery jqPlot.
Exemplos¶
Gráfico de pizza¶
Os resultados da consulta para um gráfico de pizza simples podem ser gerados com:
SELECT 'Food' AS 'expense',
1250 AS 'amount' UNION
SELECT 'Accommodation', 500 UNION
SELECT 'Travel', 720 UNION
SELECT 'Misc', 220
E o resultado dessa consulta é:
expense | amount |
---|---|
Food | 1250 |
Accommodation | 500 |
Travel | 720 |
Misc | 220 |
Escolhendo a despesa como o eixo X e o montante como série:

Gráfico de barras e colunas¶
Tanto gráficos de barras quanto gráficos de colunas suportam empilhamento. Ao selecionar um desses tipos, uma caixa de seleção é exibida para selecionar o empilhamento.
Os resultados da consulta para um gráfico simples de barras ou colunas podem ser gerados com:
SELECT
'ACADEMY DINOSAUR' AS 'title',
0.99 AS 'rental_rate',
20.99 AS 'replacement_cost' UNION
SELECT 'ACE GOLDFINGER', 4.99, 12.99 UNION
SELECT 'ADAPTATION HOLES', 2.99, 18.99 UNION
SELECT 'AFFAIR PREJUDICE', 2.99, 26.99 UNION
SELECT 'AFRICAN EGG', 2.99, 22.99
E o resultado dessa consulta é:
title | rental_rate | replacement_cost |
---|---|---|
ACADEMY DINOSAUR | 0.99 | 20.99 |
ACE GOLDFINGER | 4.99 | 12.99 |
ADAPTATION HOLES | 2.99 | 18.99 |
AFFAIR PREJUDICE | 2.99 | 26.99 |
AFRICAN EGG | 2.99 | 22.99 |
Escolhendo title como o eixo X e rental_rate e replacement_cost como séries:

Gráfico de dispersão¶
Os gráficos de dispersão são úteis na identificação do movimento de uma ou mais variáveis em comparação com outra variável.
Usando o mesmo conjunto de dados da seção de gráficos de barras e colunas e escolhendo replacement_cost como o eixo X e rental_rate como série:

Gráficos de linha, spline e linha do tempo¶
Esses gráficos podem ser usados para ilustrar tendências nos dados subjacentes. Os gráficos spline desenham linhas suaves enquanto os gráficos de linha do tempo desenham o eixo X levando em consideração as distâncias entre as datas/tempos.
Os resultados da consulta para um gráfico de linha, spline ou linha do tempo simples podem ser gerados com:
SELECT
DATE('2006-01-08') AS 'date',
2056 AS 'revenue',
1378 AS 'cost' UNION
SELECT DATE('2006-01-09'), 1898, 2301 UNION
SELECT DATE('2006-01-15'), 1560, 600 UNION
SELECT DATE('2006-01-17'), 3457, 1565
E o resultado dessa consulta é:
Data | receita | custo |
---|---|---|
2016-01-08 | 2056 | 1378 |
2006-01-09 | 1898 | 2301 |
2006-01-15 | 1560 | 600 |
2006-01-17 | 3457 | 1565 |



Importar e exportar¶
Importar¶
Para importar dados, vá para a aba “Importar” no phpMyAdmin. Para importar dados em um banco de dados ou tabela específica, abra o banco de dados ou tabela antes de ir para a aba “Importar”.
Além das abas padrão de Importar e Exportar, você também pode importar um arquivo SQL diretamente arrastando e soltando-o do seu gerenciador de arquivos para a interface do phpMyAdmin no seu navegador.
Se você tiver problemas para importar arquivos grandes, consulte 1.16 Eu não consigo subir arquivos de exportação grandes (memória, HTTP ou problemas de timeout)..
Você pode importar usando os seguintes métodos:
Upload via formulário
Pode ser usado com qualquer formato suportado e também com arquivos (b|g)zipados, por exemplo, mydump.sql.gz .
Consulta SQL via formulário
Pode ser usada com dumps SQL válidos.
Usando um diretório de upload
Você pode especificar um diretório de upload no seu servidor web onde o phpMyAdmin está instalado, após fazer o upload do arquivo para esse diretório você pode selecioná-lo na caixa de diálogo de importação do phpMyAdmin, veja$cfg['UploadDir']
.
O phpMyAdmin pode importar a partir de vários formatos comumente usados.
CSV¶
Formato de valores separados por vírgula (CSV) que é frequentemente usado por planilhas ou vários outros programas para exportação/importação.
Nota
Ao importar dados de um arquivo CSV para uma tabela com um campo ‘auto_increment’, deixe o valor do campo ‘auto_increment’ em cada registro do CSV igual a ‘0’ (zero). Isso permite que o campo com ‘auto_increment’ seja preenchido corretamente.
Agora é possível importar um arquivo CSV no nível do servidor ou do banco de dados. Ao invés de ter que criar uma tabela para importar o arquivo CSV, uma estrutura que melhor se ajuste aos dados será determinada para você e os dados serão importados nela. Todos os outros recursos, requisitos e limitações permanecem como antes.
CSV usando LOAD DATA¶
Similar ao CSV, só que usando o analisador interno do MySQL e não o do phpMyAdmin.
Shapefile ESRI¶
O shapefile ESRI, ou simplesmente shapefile, é um formato popular de dados vetoriais geoespaciais para softwares de sistemas de informação geogŕafica. Ele é desenvolvido e regulado pela Esri como uma especificação (em grande parte) aberta para interoperabilidade de dados entre a Esri e outros produtos de software.
MediaWiki¶
Arquivos MediaWiki, que podem ser exportados pelo phpMyAdmin (versão 4.0 ou posterior), agora também podem ser importados. Este é o formato usado pela Wikipédia para exibir tabelas.
Open Document Spreadsheet (ODS)¶
Os arquivos OpenDocument contendo uma ou mais planilhas agora podem ser importados diretamente.
When importing an ODS spreadsheet, the spreadsheet must be named in a specific way in order to make the import as simple as possible.
Nome da Tabela¶
Durante a importação, o phpMyAdmin usa o nome da folha como o nome da tabela; você deve renomear a folha em sua planilha para combinar com o nome da tabela existente (ou da tabela que deseja criar, apesar que nesse caso você pode renomear rapidamente a nova tabela na aba Operações).
Nome das colunas¶
Você também deve fazer, na primeira linha de sua planilha, um cabeçalho com os nomes das colunas (isso pode ser obtido inserindo uma nova linha na parte superior da planilha). Na tela Importar, marque a caixa de seleção para “A primeira linha do arquivo contém os nomes das colunas da tabela”; desta forma, os dados recém-importados irão para as colunas apropriadas.
Nota
As fórmulas e os cálculos NÃO serão avaliados, ao invés disso, o valor da última versão salva será carregado. Certifique-se de que todos os valores na planilha estão no formato necessário antes de importá-la.
SQL¶
O SQL pode ser usado para fazer qualquer manipulação em dados e também é útil para restaurar dados de backup.
XML¶
Os arquivos XML exportados pelo phpMyAdmin (versão 3.3.0 ou posterior) agora podem ser importados. Estruturas (bancos de dados, tabelas, visualizações, gatilhos, etc.) e/ou dados serão criados dependendo do conteúdo do arquivo.
Os esquemas xml suportados ainda não estão documentados neste wiki.
Exportar¶
O phpMyAdmin pode exportar para arquivos de texto (até mesmo compactados) no seu disco local (ou em uma pasta especial $cfg['SaveDir']
no servidor web) em vários formatos comumente usados:
CodeGen¶
Formato de arquivo NHibernate. Versões planejadas: Java, Hibernate, PHP PDO, JSON, etc. O nome preliminar é codegen.
CSV¶
Formato de valores separados por vírgula (CSV) que é frequentemente usado por planilhas ou vários outros programas para exportação/importação.
CSV para Microsoft Excel¶
Esta é só uma versão pré-configurada da exportação CSV que pode ser importada na maioria das versões em inglês do Microsoft Excel. Algumas versões localizadas (como o português) esperam “;” em vez de “,” como separador de campo.
Microsoft Word 2000¶
Se você estiver usando o Microsoft Word 2000 ou mais recente (ou compatível, como o OpenOffice.org), você pode usar essa exportação.
JSON¶
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados. É fácil para humanos lerem e escreverem e é fácil para máquinas analisarem e gerarem.
Alterado na versão 4.7.0: A estrutura JSON gerada foi alterada no phpMyAdmin 4.7.0 para produzir dados JSON válidos.
O JSON gerado é uma lista de objetos com os seguintes atributos:
-
type
¶ Tipo do objeto em questão, pode ser um dos seguintes:
header
- Cabeçalho de exportação contendo comentários e versão do phpMyAdmin.
database
- Início de um marcador de banco de dados, contendo o nome do banco de dados.
table
- Exportação de dados da tabela.
-
comment
¶ Comentário de texto opcional.
Exemplo de saída:
[
{
"comment": "Export to JSON plugin for PHPMyAdmin",
"type": "header",
"version": "4.7.0-dev"
},
{
"name": "cars",
"type": "database"
},
{
"data": [
{
"car_id": "1",
"description": "Green Chrysler 300",
"make_id": "5",
"mileage": "113688",
"price": "13545.00",
"transmission": "automatic",
"yearmade": "2007"
}
],
"database": "cars",
"name": "cars",
"type": "table"
},
{
"data": [
{
"make": "Chrysler",
"make_id": "5"
}
],
"database": "cars",
"name": "makes",
"type": "table"
}
]
LaTeX¶
Se você deseja incorporar dados ou estrutura de tabela no LaTeX, esta é a escolha certa para você.
LaTeX é um sistema de composição muito adequado para a produção de documentos científicos e matemáticos de alta qualidade tipográfica. Também é adequado para produzir todo tipo de documentos, desde cartas simples até livros completos. O LaTeX usa o TeX como seu mecanismo de formatação. Saiba mais sobre o TeX e o LaTeX no Comprehensive TeX Archive Network, também veja esta curta descrição do TeX.
A saída precisa ser incorporada a um documento LaTeX antes de poder ser processada, por exemplo no documento a seguir:
\documentclass{article}
\title{phpMyAdmin SQL output}
\author{}
\usepackage{longtable,lscape}
\date{}
\setlength{\parindent}{0pt}
\usepackage[left=2cm,top=2cm,right=2cm,nohead,nofoot]{geometry}
\pdfpagewidth 210mm
\pdfpageheight 297mm
\begin{document}
\maketitle
% insert phpMyAdmin LaTeX Dump here
\end{document}
MediaWiki¶
Tanto tabelas quanto bancos de dados podem ser exportados no formato MediaWiki, que é usado pela Wikipédia para exibir tabelas. É possível exportar estrutura, dados ou ambos, incluindo nomes de tabelas ou cabeçalhos.
Planilha OpenDocument¶
Padrão aberto para planilha de dados, que está sendo amplamente adotado. Muitos programas de planilhas recentes, como LibreOffice, OpenOffice, Microsoft Office ou Google Docs podem lidar com esse formato.
Texto OpenDocument¶
New standard for text data which is being widely adopted. Most recent word processors (such as LibreOffice, OpenOffice, Microsoft Word, AbiWord or KWord) can handle this.
PDF¶
Para fins de apresentação, um PDF não editável pode ser a melhor escolha para você.
Array do PHP¶
Você pode gerar um arquivo php que irá declarar uma matriz multidimensional com o conteúdo da tabela ou banco de dados selecionado.
SQL¶
A exportação em SQL pode ser usada para restaurar o seu banco de dados, portanto, é útil para fazer backup.
A opção ‘Comprimento máximo da consulta criada’ parece não estar documentada. Mas experimentos mostraram que ela divide grandes INSERTs estendidos para que cada um não seja maior do que um número específico de bytes (ou caracteres?). Assim, ao importar o arquivo, para tabelas grandes você evita o erro “Obteve um pacote maior do que ‘max_allowed_packet’ bytes”.
Opções de Dados¶
Inserts completos adiciona os nomes das colunas ao dump SQL. Este parâmetro melhora a legibilidade e a confiabilidade do dump. Adicionar os nomes das colunas aumenta o tamanho do dump, mas quando combinado com inserções estendidas torna-se insignificante.
Inserts estendidos combina várias linhas de dados em uma única consulta INSERT. Isso irá reduzir significativamente o tamanho do arquivo para grandes dumps SQL, aumenta a velocidade do INSERT quando importado e é geralmente recomendado.
Texy!¶
Formato de marcação Texy!. Você pode ver um exemplo no Texy! demo.
XML¶
Exportação facilmente analisável para uso com scripts personalizados.
Alterado na versão 3.3.0: O esquema XML usado mudou a partir da versão 3.3.0
YAML¶
O YAML é um formato de serialização de dados que é tanto legível por humanos e computacionalmente poderoso ( <https://yaml.org> ).
Temas Personalizados¶
O phpMyAdmin vem com suporte para temas de terceiros. Você pode baixar temas adicionais do nosso site em <https://www.phpmyadmin.net/themes/>.
Configuração¶
Themes are configured with $cfg['ThemeManager']
and
$cfg['ThemeDefault']
. Under ./public/themes/
, you should not
delete the directory pmahomme
or its underlying structure, because this is
the system theme used by phpMyAdmin. pmahomme
contains all images and
styles, for backwards compatibility and for all themes that would not include
images or css-files. If $cfg['ThemeManager']
is enabled, you
can select your favorite theme on the main page. Your selected theme will be
stored in a cookie.
Criação de temas personalizados¶
Para criar um tema:
- make a new subdirectory (for example “your_theme_name”) under
./public/themes/
. - copie os arquivos e diretórios do
pmahomme
para “nome_do_seu_tema” - edite os arquivos CSS em “nome_do_seu_tema/css”
- coloque suas imagens novas em “nome_do_seu_tema/img”
- edite
_variables.scss
em “nome_do_seu_tema/scss” - edite
theme.json
em “nome_do_seu_tema” para conter os metadados do tema (veja abaixo) - crie um novo retrato do seu tema e salve dentro de “nome_do_seu_tema/screen.png”
Metadados do tema¶
Alterado na versão 4.8.0: Antes do 4.8.0, os metadados do tema eram passados no arquivo info.inc.php
. Ele foi substituído por theme.json
para facilitar a análise sintática (sem a necessidade de lidar com código PHP) e para suportar recursos adicionais.
No diretório do tema, há um arquivo theme.json
que contém os metadados do tema. Atualmente ele é composto por:
-
name
Exibe o nome do tema.
Este campo é obrigatório.
-
version
Versão do tema, pode ser um tanto arbitrária e não precisa combinar com a versão do phpMyAdmin.
Este campo é obrigatório.
-
description
Descrição do tema. Isso será mostrado no site.
Este campo é obrigatório.
-
author
Nome do autor do tema.
Este campo é obrigatório.
-
url
Link para o site do autor do tema. É uma boa ideia ter alguma forma de se obter suporte por lá.
-
supports
Vetor de versões principais do phpMyAdmin suportadas.
Este campo é obrigatório.
Por exemplo, a definição para o tema Original enviada com o phpMyAdmin 4.8:
{
"name": "Original",
"version": "4.8",
"description": "Original phpMyAdmin theme",
"author": "phpMyAdmin developers",
"url": "https://www.phpmyadmin.net/",
"supports": ["4.8"]
}
Compartilhando imagens¶
Se você não quiser usar seus próprios símbolos e botões, remova o diretório “img” em “nome_do_seu_tema”. O phpMyAdmin usará os ícones e botões padrão (do tema de sistema pmahomme
).
Outras fontes de informação¶
Livro Impresso¶
O guia definitivo de uso do phpMyAdmin é o livro Mastering phpMyAdmin for Effective MySQL Management, do Marc Delisle. Você pode obter informações sobre esse livro e outros livros oficialmente aprovados no site do phpMyAdmin.
FAQ - Perguntas Frequentes¶
Favor dar uma olhada na nossa Seção de links na página oficial do phpMyAdmin para uma cobertura profunda das funções e/ou interface do phpMyAdmin.
Servidor¶
1.1 Meu servidor está caindo toda vez que uma ação específica é exigida ou o phpMyAdmin está me retornando uma página em branco ou uma página cheia de caracteres criptográficos para o meu navegador, o que eu posso fazer?¶
Try to set the $cfg['OBGzip']
directive to false
in your
config.inc.php
file and the zlib.output_compression
directive to
Off
in your php configuration file.
1.2 Meu servidor Apache cai toda vez que tento usar o phpMyAdmin.¶
Você deveria tentar usar as últimas versões do Apache (e possivelmente do MySQL). Se seu servidor continuar caindo, favor procurar por ajuda nos vários grupos de suporte do Apache.
1.3 (removido).¶
1.4 Quando uso o phpMyAdmin com IIS, aparece para mim a mensagem de erro: “A aplicação CGI apresentou um comportamento errado por não retornar um comjunto completo de cabeçalhos HTTP…”.¶
Você esqueceu de ler o arquivo install.txt da distribuição do PHP. Dê uma olhada na última mensagem neste relatório de bug do PHP #12061 da base de dados de bugs oficial do PHP.
1.5 Quando uso o phpMyAdmin com IIS, estou passando por quedas e/ou muitas mensagens de erro com o HTTP.¶
Isso é um problema conhecido com o filtro ISAPI do PHP por ele não ser tão estável. Favor usar o modo de autenticação por cookies no lugar dele.
1.6 Eu não consigo usar o phpMyADmin com o PWS: nada está sendo mostrado!¶
This seems to be a PWS bug. Filippo Simoncini found a workaround (at
this time there is no better fix): remove or comment the DOCTYPE
declarations (2 lines) from the scripts src/Header.php
and index.php
.
1.7 Como posso comprimir com gzip um dump ou um arquivo de exportação CSV? Não parece estar funcionando.¶
Esse recurso é baseado na função gzencode()
do PHP para ser mais independente da plataforma (Unix/Windows, Modo de segurança ou não, e assim em diante). Então, você deve ter suporte a Zlib (--with-zlib
).
1.8 Eu não consigo inserir um arquivo de texto em uma tabela, e eu recebo um erro sobre o modo de segurança estar sendo usado.¶
Seu arquivo enviado está salvo pelo PHP no “upload dir”, de acordo com a definição do seu arquivo php.ini
na variável upload_tmp_dir
(normalmente o padrão do sistema é /tmp). Nós recomendamos a seguinte instalação dos servidores Apache rodando em modo de segurança, para ativar uploads de arquivos sendo razoavelmente seguros:
- criar um diretório separado para uploads: mkdir /tmp/php
- dar o direito de posse do servidor Apache ao usuário.grupo: chown apache.apache /tmp/php
- dar permissão apropriada: chmod 600 /tmp/php
- colocar
upload_tmp_dir = /tmp/php
no arquivophp.ini
- reinicie o Apache
1.9 (removido).¶
1.10 Eu estou tendo problemas com o upload de arquivos com o phpMyAdmin rodando num servidor seguro. Meu navegador é o Internet Explorer e eu estou usando um servidor Apache.¶
Como sugerido por “Rob M” no fórum phpWizard, adicione essa linha ao seu arquivo httpd.conf:
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
Ela parece resolver muitos problemas entre o Internet Explorer e o SSL.
1.11 Eu recebo uma ‘restrição open_basedir’ quando tento subir um arquivo a partir da aba de importação.¶
Desde a versão 2.2.4 do phpMyAdmin, ele suporta servidores com restrições open_basedir. No entanto, você precisa criar um diretório temporário e configurá-lo como $cfg['TempDir']
. Os arquivos enviados serão movidos para lá, e depois da execução dos seus comandos SQL, removidos.
1.12 Eu perdi minha senha de root do MySQL, o que eu posso fazer?¶
O phpMyAdmin faz autenticação contra o servidor MySQL que você está usando, então para se recuperar de uma perda de senha do phpMyAdmin, você precisa se recuperar no nível do MySQL.
O manual do MySQL explica como resetar as permissões.
Se você estiver usando um servidor MySQL instalado pelo seu provedor de hospedagem, entre em contato com o suporte deles para recuperarem a senha para você.
1.13 (removido).¶
1.14 (removido).¶
1.15 Eu tenho problemas com os nomes de coluna com mysql.user.¶
Nas versões anteriores do MySQL, as colunas User
e Password
eram chamadas user
e password
. Favor modificar seus nomes de coluna para alinhar aos padrões atuais.
1.16 Eu não consigo subir arquivos de exportação grandes (memória, HTTP ou problemas de timeout).¶
A partir da versão 2.7.0, o motor de importação foi reescrito e esses problemas não deveriam acontecer. Se possível, atualize seu phpMyAdmin para a última versão para usufruir das novas funções importantes.
As primeiras coisas a verificar (ou pedir para o seu provedor de hospedagem verificar) são os valores do max_execution_time
, upload_max_filesize
, memory_limit
e post_max_size
no arquivo de configuração php.ini
. Todas essas configurações limitam o tamanho máximo de dados que podem ser enviados e usados pelo PHP. Observe que post_max_size
precisa ser maior que upload_max_filesize
. Existem várias soluções se seus uploads são grandes demais ou se seu provedor de hospedagem não estiver disposto a alterar as configurações:
Dê uma olhada na função
$cfg['UploadDir']
. Isso permite a pessoa subir um arquivo ao servidor via scp, FTP, ou seu método de transferência de arquivos preferido. O phpMyAdmin então será capaz de importar esses arquivos do diretório temporário. Mais informações estão disponíveis na seção Configuração deste documento.Usar um utilitário (tal como o BigDump) para separar os arquivos antes de enviá-los. Não podemos dar suporte à esta ou nenhuma outra aplicação de terceiros, mas temos conhecimento de usuários usando-as com sucesso.
Se você tem acesso ao shell (linha de comando), use o MySQL para importar os arquivos diretamente. Você pode fazer isso enviando um comando “source” de dentro do MySQL:
source filename.sql;
1.17 Quais versões de bancos de dados são suportadas pelo phpMyAdmin?¶
Para o MySQL, as versões 5.5 e posteriores são suportadas. Para as versões mais antigas do MySQL, nossa página de Downloads oferece versões mais antigas do phpMyAdmin (que podem não ter mais suporte).
Para o MariaDB, as versões 5.5 e posteriores são suportadas.
1.17a Eu não consigo conectar ao servidor MySQL. Ele sempre retorna a mensagem de erro, “O cliente não suporta o protocol de autenticação pedido ao servidor, considere atualizar o cliente MySQL”¶
You tried to access MySQL with an old MySQL client library. The version of your MySQL client library can be checked in your phpinfo() output. In general, it should have at least the same minor version as your server - as mentioned in 1.17 Quais versões de bancos de dados são suportadas pelo phpMyAdmin?. This problem is generally caused by using MySQL version 4.1 or newer. MySQL changed the authentication hash and your PHP is trying to use the old method. The proper solution is to use the mysqli extension with the proper client library to match your MySQL installation. More information (and several workarounds) are located in the MySQL Documentation.
1.18 (removido).¶
1.19 Eu não consigo rodar a função “mostrar relações” porque o script parece não conhecer a fonte que eu estou usando!¶
A biblioteca TCPDF que nós estamos usando para essa função exige alguns arquivos especiais para usar fontes. Favor referir ao manual do TCPDF para construir esses arquivos.
1.20 Eu recebo um erro sobre extensões mysqli e mysql faltando.¶
Para conectar ao servidor MySQL, o PHP precisa de um conjunto de funções MySQL chamadas “extensão MySQL”. Essa extensão pode ser parte da distribuição do PHP (compilada junto), caso contrário ela precisa ser carregada dinamicamente. Seu nome é provavelmente mysqli.so ou php_mysqli.dll. O phpMyAdmin tentou carregar a extensão mas falhou. Normalmente, o problema é resolvido instalando um pacote de software chamado “PHP-MySQL” ou algo similar.
There was two interfaces PHP provided as MySQL extensions - mysql
and mysqli
. The mysql
interface was removed in PHP 7.0.
Esse problema também pode ser causado por caminhos errados no php.ini
ou por usar o php.ini
incorreto.
Certifique-se de que os arquivos de extensão existem na pasta que o extension_dir
aponta e que as linhas correspondentes no seu php.ini
não estão comentadas (você pode usar o phpinfo()
para verificar a configuração atual):
[PHP]
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Apache2/modules/php/ext"
O php.ini
pode ser carregado de vários locais (especialmente no Windows), então verifique se você está atualizando o correto. Se estiver usando o Apache, você pode informar um caminho específico para esse arquivo usando a diretiva PHPIniDir
:
LoadModule php7_module "C:/php7/php7apache2_4.dll"
<IfModule php7_module>
PHPIniDir "C:/php7"
<Location>
AddType text/html .php
AddHandler application/x-httpd-php .php
</Location>
</IfModule>
In some rare cases this problem can be also caused by other extensions loaded
in PHP which prevent MySQL extensions to be loaded. If anything else fails, you
can try commenting out extensions for other databases from php.ini
.
1.21 Eu estou rodando a versão CGI do PHP no Unix, e não consigo entrar usando o modo de autenticação por cookies.¶
No arquivo php.ini
, configure mysql.max_links
para mais de 1.
1.22 Eu não vejo o campo de “Localização do arquivo de texto”, então eu não consigo fazer o upload.¶
O mais provável é que no seu arquivo php.ini
, o parâmetro file_uploads
não está definido como “on”.
1.23 Eu estou rodando o MySQL em uma máquina Win32. Cada vez que eu crio uma nova tabela, a tabela e os nomes das colunas são mudados para letras minúsculas!¶
Isso acontece porque a diretiva do MySQL lower_case_table_names
vem por padrão como 1 (ON
) na versão Win32 do MySQL. Você pode mudar esse comportamento simplesmente mudando a diretiva para 0 (OFF
): basta editar seu arquivo my.ini
que deve estar localizado no seu diretório do Windows e adicionar a seguinte linha ao grupo [mysqld]:
set-variable = lower_case_table_names=0
Nota
Ao forçar esta variável a 0 com –lower-case-table-names=0 em um sistema de arquivos que não faz distinção entre maiúsculas e minúsculas, o acesso a tabelas MyISAM usando maiúsculas e minúsculas de forma diferente do nome da tabela pode resultar em índices corrompidos.
Em seguida, salve o arquivo e reinicie o serviço MySQL. Você sempre pode verificar o valor dessa diretiva usando a query
SHOW VARIABLES LIKE 'lower_case_table_names';
1.24 (removido).¶
1.25 Eu estou rodando o Apache com o mod_gzip-1.3.26.1a no Windows XP, e eu recebo problemas, como variáveis indefinidas quando eu rodo a query SQL.¶
Uma dica de Jose Fandos: coloque um comentário nas duas linhas seguintes no arquivo httpd.conf, desse jeito:
# mod_gzip_item_include file \.php$
# mod_gzip_item_include mime "application/x-httpd-php.*"
já que essa versão do mod_gzip no Apache (Windows) tem problemas em lidar com scripts PHP. É claro, você tem que reiniciar o Apache.
1.26 Eu acabei de instalar o phpMyADmin no documento raiz do IIS mas eu recebo o erro “Nenhum arquivo de entrada especificado” quando tento rodar o phpMyAdmin.¶
Isso é um problema de permissão. Clique com o botão direito na pasta do phpMyAdmin e escolha as propriedades. Na aba Segurança, clique em “Adicionar” e selecione o usuário “IUSR_machine” da lista. Agora configure essas permissões e deverá funcionar.
1.27 Eu recebo uma página vazia quando eu quero visualizar uma página gigante (ex: db_structure.php com muitas tabelas).¶
Isso foi causado por um bug do PHP que ocorre quando o buffer de saída GZIP está ativado. Se você desligá-lo (pela configuração $cfg['OBGzip']
no arquivo config.inc.php
), deverá solucionar o problema. Esse bug foi consertado no PHP 5.0.0.
1.28 Meu servidor MySQL recusa queries algumas vezes e retorna a mensagem ‘Código de erro: 13’. O que isso quer dizer?¶
Isso pode acontecer por causa de um bug do MySQL quando ele tem nomes de banco de dados/tabelas com letras maiúsculas embora lower_case_table_names
esteja definido como 1. Para consertar isso, desligue essa diretiva, converta todos os nomes de bancos de dados e tabelas para letras minúsculas e ligue-a novamente. Alternativamente, há um conserto de bug disponível a partir da versão do MySQL 3.23.56 / 4.0.11-gamma.
1.29 Quando eu crio uma tabela ou modifico uma coluna, eu recebo um erro e as colunas são duplicadas.¶
É possível configurar o Apache de forma que o PHP terá problemas interpretando arquivos .php.
Os problemas ocorrem quando dois conjuntos diferentes (e conflitantes) de diretivas estão sendo usados:
SetOutputFilter PHP
SetInputFilter PHP
e
AddType application/x-httpd-php .php
No caso que nós vimos, um conjunto de diretivas estava em /etc/httpd/conf/httpd.conf
, enquanto o outro estava em /etc/httpd/conf/addon-modules/php.conf
. O jeito recomendado é com AddType
, então apenas comente o primeiro conjunto de linhas e reinicie o Apache:
#SetOutputFilter PHP
#SetInputFilter PHP
1.31 Quais versões do PHP são suportadas pelo phpMyAdmin?¶
Desde o lançamento 4.5, phpMyAdmin suporta apenas PHP 5.5 e mais recentes. Desde a versão 4.1 o phpMyAdmin suporta somente o PHP 5.3 e mais recentes. Para PHP 5.2 você pode usar as versões 4.0.x.
PHP 7 é suportado desde o phpMyAdmin 4.6, PHP 7.1 é suportado desde 4.6.5, PHP 7.2 é suportado desde 4.7.4.
HHVM é suportado até o phpMyAdmin 4.8.
Since release 5.0, phpMyAdmin supports only PHP 7.1 and newer. Since release 5.2, phpMyAdmin supports only PHP 7.2 and newer. Since release 6.0, phpMyAdmin supports only PHP 8.1 and newer.
1.32 Eu posso usar autenticação HTTP com o IIS?¶
Sim. Esse é um procedimento que foi testado com o phpMyAdmin 2.6.1 e PHP 4.3.9 no modo ISAPI com o IIS 5.1.
- No seu arquivo
php.ini
, escrevacgi.rfc2616_headers = 0
- Na caixa de diálogo
Propriedades do Web Site -> Arquivo/Segurança de Diretório -> Acesso Anônimo
, verifique a caixa de marcaçãoAcesso anônimo
e desmarque qualquer outra caixa de seleção (ex: desmarqueAutenticação básica
,Autenticação integrada com o Windows
, eResumo
se estiver ativado). CliqueOK
. - Em
Erros personalizados
, selecione o limite de401;1
até401;5
e clique no botãoDefinir como padrão
.
Ver também
1.33 (removido).¶
1.34 Eu posso acessar diretamente as páginas do banco de dados ou das tabelas?¶
Sim. Por padrão, você pode usar uma URL como http://server/phpMyAdmin/index.php?server=X&db=database&table=table&target=script
. Para server
, você pode usar o número do servidor que se refere ao índice numérico do host (de $i
) no config.inc.php
. As partes table e script são opcionais.
Se você quiser uma URL como http://server/phpMyAdmin/database[/table][/script]
, você precisa fazer algumas configurações adicionais. As linhas a seguir se aplicam somente ao servidor web Apache. Primeiro assegure-se de ter ativado algumas funções dentro da configuração global do Apache. Você precisa ativar Options SymLinksIfOwnerMatch
e AllowOverride FileInfo
para o diretório onde o phpMyAdmin está instalado e você precisa que mod_rewrite esteja ativado. Então você só precisa criar o seguinte arquivo .htaccess na pasta raiz da instalação do phpMyAdmin (não esqueça de mudar o nome diretório dentro dele):
RewriteEngine On
RewriteBase /path_to_phpMyAdmin
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&table=$2&target=$3 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-z_]+\.php)$ index.php?db=$1&target=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ index.php?db=$1&table=$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)$ index.php?db=$1 [R]
Alterado na versão 5.1.0: O suporte ao uso do parâmetro target
foi removido no phpMyAdmin 5.1.0. Use o parâmetro route
em seu lugar.
1.35 Eu posso usar autenticação HTTP com o Apache CGI?¶
Sim. No entanto, você precisa passar a variável de autenticação ao CGI usando a seguinte reescrita de regra:
RewriteEngine On
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]
1.36 Eu recebo um erro “500 Internal Server Error”.¶
Pode haver muitas explicações para isso e uma olhada no log de erros do seu servidor pode apresentar uma dica.
1.37 Eu rodo o phpMyAdmin num cluster de máquinas diferentes e a criptografia de senha em autenticação por cookies não está funcionando.¶
If your cluster consist of different architectures, PHP code used for encryption/decryption won’t work correctly. This is caused by use of pack/unpack functions in code. Only solution is to use openssl extension which works fine in this case.
1.38 Eu posso usar o phpMyAdmin num servidor em que o Suhosin está ativado?¶
Sim, mas os valores padrão de configuração são conhecidos por causar problemas com algumas operações, por exemplo, editar uma tabela com muitas colunas e nenhuma primary key ou com primary key textual.
A configuração do Suhosin pode levar ao mal funcionamento em alguns casos e ela não pode ser completamente evitar já que o phpMyAdmin é o tipo de aplicação que precisa transferir grandes quantidades de campos numa única requisição HTTP, que é algo que o Suhosin tenta prevenir. Geralmente todos as diretivas suhosin.request*
, suhosin.post*
e suhosin.get*
podem ter um efeito negativo na usabilidade do phpMyAdmin. Você sempre pode achar nos seus logs de erro qual limite causou a perda de variável, então você pode diagnosticar o problema e ajustar a variável de configuração correspondente.
Os valores padrão para a maior parte das opções de configuração do Suhosin irá funcionar na maior parte dos cenários, no entanto você pode querer ajustar pelo menos os parâmetros a seguir:
- suhosin.request.max_vars should be increased (eg. 2048)
- suhosin.post.max_vars should be increased (eg. 2048)
- suhosin.request.max_array_index_length should be increased (eg. 256)
- suhosin.post.max_array_index_length should be increased (eg. 256)
- suhosin.request.max_totalname_length should be increased (eg. 8192)
- suhosin.post.max_totalname_length should be increased (eg. 8192)
- suhosin.get.max_value_length should be increased (eg. 1024)
- suhosin.sql.bailout_on_error needs to be disabled (the default)
- suhosin.log.* should not include SQL, otherwise you get big slowdown
- suhosin.sql.union must be disabled (which is the default).
- suhosin.sql.multiselect must be disabled (which is the default).
- suhosin.sql.comment must be disabled (which is the default).
Para melhorar ainda mais a segurança, também recomendamos estas modificações:
- suhosin.executor.include.max_traversal should be
enabled as a mitigation against local file inclusion attacks. We suggest
setting this to 2 as
../
is used with the ReCaptcha library. - suhosin.cookie.encrypt should be enabled.
- suhosin.executor.disable_emodifier should be enabled.
Você também pode desativar o aviso usando $cfg['SuhosinDisableWarning']
.
1.39 Quando eu tento conectar via https, eu consigo entrar, mas então a minha conexão é redirecionada de volta ao http. O que pode causar esse comportamento?¶
Isso é causado pelo fato de que os scripts PHP não sabem que o site está usando o https. Dependendo do servidor web usado, você deve configurá-lo para permitir que o PHP saiba sobre a URL e o esquema usado para acessá-lo.
Por exemplo, no Apache, certifique-se de que você ativou SSLOptions
e StdEnvVars
na configuração.
Ver também
1.40 Quando acesso o phpMyAdmin via um proxy reverso do Apache, o login por cookies não funciona.¶
Para conseguir usar a autenticação por cookies, o Apache precisa saber que ele tem que reescrever o cabeçalho set-cookie. Exemplo da documentação do Apache 2.2:
ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/
Observação: se a url do backend parecer com http://server/~user/phpmyadmin
, o til (~) deve ser codificado para url como %7E nas linhas ProxyPassReverse*. Isso não é específico do phpMyAdmin, é apenas o comportamento do Apache.
ProxyPass /mirror/foo/ http://backend.example.com/~user/phpmyadmin
ProxyPassReverse /mirror/foo/ http://backend.example.com/%7Euser/phpmyadmin
ProxyPassReverseCookiePath /%7Euser/phpmyadmin /mirror/foo
1.41 Quando eu vejo um banco de dados e peço para ver seus privilégios, eu recebo um erro sobre uma coluna desconhecida.¶
As tabelas de privilégios do servidor MySQL não estão atualizadas, você precisa rodar o comando mysql_upgrade no servidor.
1.42 Como eu posso evitar que robôs acessem o phpMyAdmin?¶
Você pode adicionar várias regras ao .htaccess para filtrar o acesso baseado no campo de agente de usuário. Isso é bem fácil de burlar, mas pode evitar que pelos menos alguns robôs acessem sua instalação.
RewriteEngine on
# Allow only GET and POST verbs
RewriteCond %{REQUEST_METHOD} !^(GET|POST)$ [NC,OR]
# Ban Typical Vulnerability Scanners and others
# Kick out Script Kiddies
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|wkito|pikto|scan|acunetix).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
# Ban Search Engines, Crawlers to your administrative panel
# No reasons to access from bots
# Ultimately Better than the useless robots.txt
# Did google respect robots.txt?
# Try google: intitle:phpMyAdmin intext:"Welcome to phpMyAdmin *.*.*" intext:"Log in" -wiki -forum -forums -questions intext:"Cookies must be enabled"
RewriteCond %{HTTP_USER_AGENT} ^.*(AdsBot-Google|ia_archiver|Scooter|Ask.Jeeves|Baiduspider|Exabot|FAST.Enterprise.Crawler|FAST-WebCrawler|www\.neomo\.de|Gigabot|Mediapartners-Google|Google.Desktop|Feedfetcher-Google|Googlebot|heise-IT-Markt-Crawler|heritrix|ibm.com\cs/crawler|ICCrawler|ichiro|MJ12bot|MetagerBot|msnbot-NewsBlogs|msnbot|msnbot-media|NG-Search|lucene.apache.org|NutchCVS|OmniExplorer_Bot|online.link.validator|psbot0|Seekbot|Sensis.Web.Crawler|SEO.search.Crawler|Seoma.\[SEO.Crawler\]|SEOsearch|Snappy|www.urltrends.com|www.tkl.iis.u-tokyo.ac.jp/~crawler|SynooBot|crawleradmin.t-info@telekom.de|TurnitinBot|voyager|W3.SiteSearch.Crawler|W3C-checklink|W3C_Validator|www.WISEnutbot.com|yacybot|Yahoo-MMCrawler|Yahoo\!.DE.Slurp|Yahoo\!.Slurp|YahooSeeker).* [NC]
RewriteRule .* - [F]
1.43 Porque eu não posso mostrar a estrutura da minha tabela contendo centenas de campos?¶
Porque sua configuração memory_limit
do PHP é baixa demais; ajuste-a no arquivo php.ini
.
1.44 Como posso reduzir o tamanho da instalação do phpMyAdmin no disco?¶
Alguns usuários solicitaram poder reduzir o tamanho da instalação do phpMyAdmin. Isso não é recomendado e pode levar a confusão sobre características faltantes, mas pode ser feito. Uma lista de arquivos e correspondentes funcionalidades que degradam suavemente quando removidos incluem:
- Pasta
./locale/
, ou subpastas não utilizadas (traduções de interface) - Any unused themes in
./public/themes/
except the default theme pmahomme. ./libraries/language_stats.inc.php
(translation statistics)./doc/
(documentação)./setup/
(script de instalação)./examples/
(configuration examples)./sql/
(SQL scripts to configure advanced functionalities)./js/src/
(Source files to re-build ./js/dist/)./js/global.d.ts
JS type declaration file- Run rm -rv vendor/tecnickcom/tcpdf && composer dump-autoload –no-interaction –optimize –dev (exporting to PDF)
- Run rm -rv vendor/williamdes/mariadb-mysql-kbs && composer dump-autoload –no-interaction –optimize –dev (external links to MariaDB and MySQL documentations)
- Run rm -rv vendor/code-lts/u2f-php-server && composer dump-autoload –no-interaction –optimize –dev (U2F second factor authentication)
- Run rm -rv vendor/pragmarx/* && composer dump-autoload –no-interaction –optimize –dev (2FA second factor authentication)
- Run rm -rv vendor/bacon/bacon-qr-code && composer dump-autoload –no-interaction –optimize –dev (QRcode generation for 2FA second factor authentication)
1.45 I get an error message about unknown authentication method caching_sha2_password when trying to log in¶
Ao entrar usando o MySQL versão 8 ou mais recente, você pode encontrar uma mensagem de erro como esta:
mysqli_real_connect(): O servidor solicitou método de autenticação desconhecido para o cliente [caching_sha2_password]
mysqli_real_connect(): (HY000/2054): O servidor solicitou método de autenticação desconhecido para o cliente
Este erro é devido a um problema de compatibilidade de versão entre PHP e MySQL. O projeto MySQL introduziu um novo método de autenticação (nossos testes mostram que isso começou com a versão 8.0.11), no entanto, o PHP não incluiu a capacidade de usar esse método de autenticação. O PHP relata que isso foi corrigido no PHP versão 7.4.
Users experiencing this are encouraged to upgrade their PHP installation, however a workaround exists. Your MySQL user account can be set to use the older authentication with a command such as
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';
Configuração¶
2.1 A mensagem de erro “Aviso: Não pode adicionar informação ao cabeçalho - cabeçalhos já enviados por …” é mostrada, qual é o problema?¶
Edite seu arquivo config.inc.php
e garanta que não há nada (por exemplo: linhas em branco, espaços, caracteres…) nem antes da tag <?php
no começo nem após a tag ?>
no final.
2.2 O phpMyAdmin não consegue conectar ao MySQL. Qual o problema?¶
Ou há um erro com sua instalação do PHP ou seu nome de usuário/senha está errado. Tente criar um pequeno script que usa mysql_connect e veja se funciona. Se não funcionar, pode ser que você sequer compilou o suporte MySQL no PHP.
2.3 A mensagem de erro “Aviso: Conexão ao MySQL Falhou: Não pode conectar ao servidor MySQL local através do socket ‘/tmp/mysql.sock’ (111) …” é mostrada. O que eu posso fazer?¶
A mensagem de erro também pode ser: Erro #2002 - O servidor não está respondendo (ou o soquete do servidor MySQL local não está configurado corretamente).
Primeiro, você precisa determinar qual socket está sendo usado pelo MySQL. Para fazer isso, conecte-se ao seu servidor e vá ao diretório bin de seu MySQL. Neste diretório deve haver um arquivo chamado mysqladmin. Digite ./mysqladmin variables
, e isso deve te mostrar um monte de informações sobre seu servidor MySQL, incluindo o socket (/tmp/mysql.sock, por exemplo). Você também pode solicitar ao seu ISP as informações de conexão ou, se você mesmo estiver hospedando, conecte-se a partir do cliente de linha de comando ‘mysql’ e digite ‘status’ para obter o tipo de conexão e socket ou o número da porta.
Então, você precisa dizer ao PHP para usar esse socket. Você pode fazer isso para o PHP inteiro no php.ini
ou apenas para o phpMyAdmin no config.inc.php
. Por exemplo example: $cfg['Servers'][$i]['socket']
. Favor garantir também que as permissões deste arquivo permitam a leitura pelo seu servidor web.
No meu RedHat-Box o socket do MySQL é /var/lib/mysql/mysql.sock. No seu arquivo php.ini
você encontrará uma linha
mysql.default_socket = /tmp/mysql.sock
mude-a para
mysql.default_socket = /var/lib/mysql/mysql.sock
Então reinicie o Apache e irá funcionar.
Dê uma olhada também na seção correspondente da documentação do MySQL.
2.4 Nada é exibido pelo meu navegador quando eu tento rodar o phpMyAdmin, o que eu posso fazer?¶
Tente definir a diretiva $cfg['OBGzip']
para false
no arquivo de configuração do phpMyAdmin. Isso ajuda às vezes. Dê uma olhada também no número de versão do seu PHP: se ele contém “b” ou “alpha” isso significa que você está rodando uma versão de testes do PHP. Isso não é uma ideia muito boa, favor atualize para uma revisão estável.
2.5 Cada vez que eu tento inserir ou mudar um registro ou eliminar um banco de dados ou tabela, um erro 404 (página não encontrada) é mostrado ou, com a autenticação por cookie ou HTTP, é pedido para que eu entre novamente. Qual o problema?¶
Verifique na configuração do seu servidor web se ele preenche corretamente as variáveis PHP_SELF ou REQUEST_URI.
Se você estiver executando o phpMyAdmin atrás de um proxy reverso, por favor, defina a diretiva $cfg['PmaAbsoluteUri']
no arquivo de configuração do phpMyAdmin para corresponder à sua configuração.
2.6 Eu recebo um erro “Acesso negado para o usuário: ‘root@localhost’ (Usando senha: SIM)” quando tento acessar o MySQL Server em um host que tem port-forward para o meu localhost.¶
Quando você usa uma porta no seu localhost, que você redireciona via port-forward para outro host, o MySQL não resolve o localhost como esperado. Erik Wasser explica: a solução é: se seu host for “localhost”, o MySQL (a ferramenta de linha de comando mysql também) sempre tenta usar o socket de conexão para acelerar as coisas. E isso parece não funcionar nessa configuração com redirecionamento de porta. Se você entrar “127.0.0.1” como hostname, tudo fica certo e o MySQL usa a conexão por TCP.
2.7 Usando e criando temas¶
Veja Temas Personalizados.
2.8 Eu recebo erros “Faltando parâmetros”, o que eu posso fazer?¶
Aqui estão alguns pontos a verificar:
- Em
config.inc.php
, tente deixar a diretiva$cfg['PmaAbsoluteUri']
vazia. Veja também a 4.7 A janela de autenticação é mostrada mais de uma vez, porque?. - Talvez você tenha uma instalação quebrada do PHP ou você precisa atualizar seu Zend Optimizer. Veja <https://bugs.php.net/bug.php?id=31134>.
- Se você está usando o Hardened PHP com a diretiva ini
varfilter.max_request_variables
, defina para o padrão (200) ou outro valor baixo, você pode receber este erro se sua tabela tiver um alto número de campos. Ajuste essa configuração de acordo. (Agradeça a Klaus Dorninger pela dica). - Na diretiva do
php.ini
arg_separator.input
, um valor de “;” irá causar este erro. Substitua ela por “&;”. - If you are using Suhosin, you might want to increase request limits.
- O diretório especificado na diretiva
session.save_path
dophp.ini
não existe ou está em modo somente leitura (isso pode ser causado por um erro no instalador do PHP).
2.9 Vendo uma barra de progresso de upload¶
To be able to see a progress bar during your uploads, your server must have the uploadprogress extension, and you must be running PHP 5.4.0 or higher. Moreover, the JSON extension has to be enabled in your PHP.
Se usar o PHP 5.4.0 ou superior, você deve definir session.upload_progress.enabled
para 1
no seu arquivo php.ini
. No entanto, na versão 4.0.4 do phpMyAdmin os uploads baseados em sessões foram temporariamente desativados devido a alguns problemas de comportamento.
2.10 How to generate a string of random bytes¶
One way to generate a string of random bytes suitable for cryptographic use is using the random_bytes PHP function. Since this function returns a binary string, the returned value should be converted to printable format before being able to copy it.
For example, the $cfg['blowfish_secret']
configuration directive requires a 32-bytes long string. The
following command can be used to generate a hexadecimal representation of this string.
php -r 'echo bin2hex(random_bytes(32)) . PHP_EOL;'
The above example will output something similar to:
f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851
And then this hexadecimal value can be used in the configuration file.
$cfg['blowfish_secret'] = sodium_hex2bin('f16ce59f45714194371b48fe362072dc3b019da7861558cd4ad29e4d6fb13851');
The sodium_hex2bin function is used here to convert the hexadecimal value back to the binary format.
Limitações conhecidas¶
3.1 Quando usar a autenticação por HTTP, um usuário que sair não poderá entrar novamente com o mesmo apelido.¶
Isso está relacionado ao mecanismo de autenticação (protocolo) usado pelo phpMyAdmin. Para contornar este problema: apenas feche todas as janelas abertas do navegador e então volte ao phpMyAdmin. Você deverá ser capaz de entrar novamente.
3.2 Quando despejo uma tabela grande em modo comprimido, eu recebo um erro de limite de memória ou um erro de tempo limite.¶
Despejos comprimidos são criados em memória e por causa disso são limitados ao limite de memória do PHP. Para exportações em gzip/bzip2 isso pode ser superado desde a versão 2.5.4 usando $cfg['CompressOnFly']
(ativada por padrão). Exportações em zip não podem ser manipuladas desse jeito, então se você precisar de arquivos zip para despejos maiores, você terá que usar outro meio.
3.3 Com tabelas InnoDB, eu perco os relacionamentos de chave estrangeira quando eu renomeio uma tabela ou uma coluna.¶
Isso é um bug do InnoDB, veja <https://bugs.mysql.com/bug.php?id=21704>.
3.4 Eu estou incapaz de importar despejos que eu criei com a ferramenta mysqldump embutida na distribuição do MySQL Server.¶
O problema é que versões mais antigas do mysqldump
criam comentários inválidos assim:
-- MySQL dump 8.22
--
-- Host: localhost Database: database
---------------------------------------------------------
-- Server version 3.23.54
A parte inválida do código é a linha horizontal feita de traços que aparecem uma vez a cada dump criado com o mysqldump. Se você quiser rodar seu dump você terá que convertê-lo para MySQL válido. Isso quer dizer, você tem que adicionar um espaço em branco após os primeiros dois traços da linha ou adicionar um # antes dela: -- -------------------------------------------------------
ou #---------------------------------------------------------
3.5 Quando uso pastas aninhadas, múltiplas hierarquias são exibidas de um jeito errado.¶
Favor observe que você não deve usar strings de separação múltiplas vezes sem nenhum caractere entre elas, ou no começo/fim do nome da sua tabela. Se você precisar, considere usar outro TableSeparator ou desative esta função.
Ver também
3.6 (removido).¶
3.7 Eu tenho tabelas com muitos campos (100+) e quando eu tento navegar nelas eu recebo uma série de erros como “Aviso: incapaz de converter url”. Como isso pode ser consertado?¶
Sua tabela não tem uma primary key nem uma unique key, então nós temos que usar uma expressão longa para identificar este registro. Isso causa problemas para a função parse_url. A solução é criar uma primary key ou uma unique key.
3.8 Eu não consigo usar os formulários HTML (clicáveis) nos campos onde eu coloco a Transformação MIME!¶
Devido a containers ao redor (para checkboxes de apagar multi-registros), nenhum formulário aninhado pode ser colocado dentro da tabela onde o phpMyAdmin mostra os resultados. Você pode, no entanto, usar qualquer formulário dentro de uma tabela se manter o container pai com o alvo para tbl_row_delete.php e apenas colocar seus próprios elementos input dentro. Se você usar um campo de submit personalizado, o formulário irá enviar a si próprio para a página de exibição novamente, onde você pode validar a $HTTP_POST_VARS em uma transformação. Para um tutorial em como usar efetivamente as transformações, veja nossa seção de links na página oficial do phpMyAdmin.
3.9 Eu recebo mensagens de erro quando uso “–sql_mode=ANSI” no servidor MySQL.¶
Quando o MySQL estiver rodando em modo de compatibilidade com ANSI, existem diferenças grandes em como o SQL é estruturado (veja <https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html>). Acima de tudo, o caractere de citação (”) é interpretado como um caractere identificador de citação e não como um caractere de citação de string, o que torna muitas operações internas do phpMyAdmin em instruções SQL inválidas. Não há solução para este comportamento. Notícias para este item serão postadas na issue #7383.
3.10 Homônimos e nenhuma chave primária: quando os resultados de um SELECT mostram mais de um registro com o mesmo valor (por exemplo SELECT lastname FROM employees WHERE firstname LIKE 'A%'
e dois valores “Smith” são exibidos), se eu clico em Editar eu não posso ter certeza que eu estou editando o campo desejado.¶
Por favor, certifique-se de que sua tabela tenha uma primary key, para que o phpMyAdmin possa usá-la para os links Editar e Deletar.
3.11 O número de registros para as tabelas InnoDB não está correto.¶
O phpMyAdmin usa um método rápido para chegar a contagem de registros, e este método somente retorna uma contagem aproximada no caso de tabelas InnoDB. Veja a $cfg['MaxExactCount']
para um jeito de modificar estes resultados, mas isso pode ter um impacto sério no desempenho. Entretanto, pode-se facilmente trocar a contagem de linhas aproximadas pela contagem exata simplesmente clicando na contagem aproximada. Isso também pode ser feito por todas as tabelas de uma vez clicando na soma de linhas exibida na parte de baixo.
Ver também
3.12 (removido).¶
3.13 Eu recebo um erro quando entro USE
seguido de um nome de banco de dados contendo um hífen.¶
Os testes que eu fiz com o MySQL 5.1.49 mostram que a API não aceita esta sintaxe para o comando USE.
3.14 Eu não estou sendo capaz de navegar na tabela quando eu não tenho o direito de fazer SELECT em uma das colunas.¶
Esta tem sido uma limitação conhecida do phpMyAdmin desde o começo e não é provável que será resolvida no futuro.
3.15 (removido).¶
3.16 (removido).¶
3.17 (removido).¶
3.18 Quando eu importo um arquivo CSV que contém múltiplas tabelas, elas são aglomeradas em uma única tabela.¶
Não há um meio confiável de diferenciar tabelas no formato CSV. Por enquanto, você terá que quebrar os arquivos CSV que contém múltiplas tabelas em arquivos menores.
3.19 Quando eu importo um arquivo e faço o phpMyAdmin determinar a estrutura de dados apropriada ele usa somente os tipos int, decimal e varchar.¶
Atualmente, o sistema de detecção de tipos de importação só consegue determinar estes tipos MySQL para colunas. No futuro, o mais provável é que serão adicionados, mas por enquanto você terá que editar a estrutura dada para suas preferências após a importação. Além disso, saiba que o phpMyAdmin usará o tamanho do maior item em qualquer dada coluna como o tamanho da coluna para o tipo apropriado. Se você sabe que adicionará itens maiores para aquela coluna então você deverá ajustar manualmente o tamanho das colunas de acordo. Isso é feito pelo bem da eficiência.
3.20 Depois de atualizar, alguns favoritos sumiram ou seu conteúdo não pode ser exibido.¶
Em algum ponto, o conjunto de caracteres usados para armazenar conteúdo dos favoritos foi mudado. É melhor recriar seus favoritos a partir da nova versão do phpMyAdmin.
3.21 Não consigo fazer login com um nome de usuário contendo caracteres unicode, como á.¶
Isso pode acontecer se o servidor MySQL não estiver configurado para usar utf-8 como codificação de caracteres padrão. Esta é uma limitação na forma em que o PHP e o servidor MySQL interagem; não há como o PHP configurar a codificação de caracteres antes da autenticação.
Ver também
ISPs, instalações multi-usuário¶
4.1 Eu sou um ISP. Eu posso instalar uma cópia central do phpMyAdmin ou eu preciso instalar ela para cada cliente?¶
Desde a versão 2.0.3, você pode instalar uma cópia central do phpMyAdmin para todos os usuários. O desenvolvimento dessa função foi gentilmente patrocinado pela NetCologne GmbH. Isso exige uma instação apropriada do gerenciamento de usuários do MySQL e a autenticação por cookie ou HTTP do phpMyAdmin.
Ver também
4.2 Qual o meio preferido de tornar o phpMyAdmin seguro contra acessos maliciosos?¶
Isso depende do seu sistema. Se você estiver rodando um servidor que não pode ser acessado por outras pessoas, é suficiente usar o diretório de proteção embutido com seu servidor web (com Apache você pode usar os arquivos .htaccess, por exemplo). Se outras pessoas tem acesso via telnet ao seu servidor, você deveria usar as funções de autenticação por HTTP ou cookie do phpMyAdmin.
Sugestões:
- Seu arquivo
config.inc.php
deve ser definido comochmod 660
. - Todos seus arquivos do phpMyAdmin devem ser definidos por chown -R phpmy.apche, onde phpmy é um usuário cuja senha é conhecida somente por você, e apache é o grupo dentro do qual o Apache roda.
- Siga as recomendações de segurança para o PHP e seu servidor web.
4.3 Eu recebo erros quanto a não ser capaz de incluir um arquivo em /lang ou /libraries.¶
Verifique o php.ini
, ou peça ao administrador do seu sistema verificar. O include_path
deve contém “.” em algum lugar dele, e open_basedir
, se usada, deve conter “.” e “./lang” para permitir operação normal do phpMyAdmin.
4.4 O phpMyAdmin sempre dá um “Acesso negado” quando uso a autenticação por HTTP.¶
Isso pode acontecer por vários motivos:
$cfg['Servers'][$i]['controluser']
e/ou$cfg['Servers'][$i]['controlpass']
estão errados.- O usuário/senha que você especificou no diálogo de login estão inválidos.
- Você já instalou um mecanismo de segurança no diretório do phpMyAdmin, ex: um arquivo .htaccess. Isso iria interferir com a autenticação do phpMyAdmin, então remova-o.
4.5 É possível deixar os usuários criar seus próprios bancos de dados?¶
A partir da versão 2.2.5, na página de gerenciamento de usuários, você pode inserir um nome coringa de banco de dados para um usuário (por exemplo “joe%”), e colocar os privilégios que você quiser. Por exemplo, adicionar SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER
iria permitir um usuário criar/gerenciar o(s) banco(s) de dados dele(a).
4.6 Como eu posso usar as adições de autenticação baseada em host?¶
Se você possui regras existentes em um arquivo .htaccess antigo, você pode pegá-las e adicionar um nome de usuário entre as strings deny/allow
e 'from'
. Usar o coringa de nome de usuário '%'
pode ser um grande benefício aqui se sua instalação está adaptada para isso. Depois você pode simplesmente adicionar aquelas linhas atualizadas no array do $cfg['Servers'][$i]['AllowDeny']['rules']
.
Se você quer uma amostra pré-pronta, você pode experimentar este fragmento. Ele impede o usuário ‘root’ de logar a partir de qualquer rede diferente dos blocos de IP de redes privadas.
//block root from logging in except from the private networks
$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny,allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = [
'deny root from all',
'allow root from localhost',
'allow root from 10.0.0.0/8',
'allow root from 192.168.0.0/16',
'allow root from 172.16.0.0/12',
];
4.7 A janela de autenticação é mostrada mais de uma vez, porque?¶
Isso acontece se você está usando a URL para iniciar o phpMyAdmin, o que é diferente da definida na sua $cfg['PmaAbsoluteUri']
. Por exemplo, um “www” faltando, ou entrar com um endereço IP quando um nome de domínio é definido no arquivo de configuração.
4.8 Quais parâmetros podem ser usados na URL que inicia o phpMyAdmin?¶
Ao iniciar o phpMyAdmin, você pode usar os parâmetros db
e server
. Este último pode conter tanto o índice numérico do host (de $i
do arquivo de configuração) ou um dos nomes de host presentes no arquivo de configuração.
Por exemplo, para ir diretamente a um banco de dados específico, a URL pode ser construída como https://example.com/phpmyadmin/?db=sakila
.
Alterado na versão 4.9.0: O suporte ao uso dos parâmetros pma_username
e pma_password
foi removido no phpMyAdmin 4.9.0 (veja PMASA-2019-4).
Navegadores ou SO cliente¶
5.1 Eu recebo um erro falta de memória, e meus controles estão não-funcionais, quando tento criar uma tabela com mais de 14 colunas.¶
Nós podemos reproduzir este problema somente no Win98/98SE. Testando no WinNT4 ou Win2K, nós podemos criar facilmente mais de 60 colunas. Uma solução é criar um número menor de colunas, então voltar às propriedades da sua tabela e adicionar as outras colunas.
5.2 Com o Xitami 2.5b4, o phpMyAdmin não processa campos de formulário.¶
Este não é um problema do phpMyAdmin, mas um bug conhecido do Xitami: você encontrará ele com cada script/site que usar formulários. Atualize ou use uma versão mais antiga do seu servidor Xitami.
5.3 Eu tenho problemas quando despejo tabelas com o Konqueror (phpMyAdmin 2.2.2).¶
Com o Konqueror 2.1.1: despejos simples, dumps zip e gzip funcionam ok, exceto que o nome de arquivo proposto para o dump sempre é ‘tbl_dump.php’. Os despejos bzip2 não parecem funcionar. Com o Konqueror 2.2.1: despejos simples funcionam; despejos zip são colocados no diretório temporário do usuário, então eles devem ser movidos antes de fechar o Konqueror, senão eles desaparecerão. Despejos gzip dão uma mensagem de erro. Testes precisam ser feitos no Konqueror 2.2.2.
5.4 Eu não consigo usar o modo de autenticação por cookie porque o Internet Explorer nunca armazena os cookies.¶
O MS Internet Explorer parece ser muito problemático quanto a cookies, pelo menos até a versão 6.
5.5 (removido).¶
5.6 (removido).¶
5.7 Eu atualizo (recarrego) meu navegador, e volto para a página inicial.¶
Alguns navegadores suportam clique direito no frame que você quer atualizar, apenas faça isso no frame certo.
5.8 Com o Mozilla 0.9.7 eu tenho problemas em enviar uma query modificada para a caixa de query.¶
Parece um bug do Mozilla: 0.9.6 estava ok. Nós ficaremos de olho em futuras versões do Mozilla.
5.9 Com o Mozilla 0.9.? ao 1.0 e Netscape 7.0-PR1 eu não consigo inserir um espaço em branco na área de edição de query SQL: a página vai para baixo.¶
Este é um bug do Mozilla (veja bug #26882 no BugZilla).
5.10 (removido).¶
5.11 Caracteres ASCII extendidos como metafonias alemãs são exibidos errado.¶
Favor garanta que você definiu o conjunto de caracteres do navegador para o arquivo de linguagem que você selecionou na página inicial do phpMyAdmin. Alternativamente, você pode tentar o modo de auto detecção que é suportado pelas versões recentes da maioria dos navegadores.
5.12 O navegador Safari do Mac OS X muda os caracteres especiais para “?”.¶
This issue has been reported by a macOS user, who adds that Chimera, Netscape and Mozilla do not have this problem.
5.13 (removido)¶
5.14 (removido)¶
5.15 (removido)¶
5.16 Com o Internet Explorer, eu recebo erros de JavaScript “Acesso negado”. Ou eu não consigo fazer o phpMyAdmin funcionar dentro do Windows.¶
Favor verifique os pontos a seguir:
- Talvez você tenha definido sua configuração
$cfg['PmaAbsoluteUri']
no arquivoconfig.inc.php
para um endereço IP e você está iniciando o phpMyAdmin com uma URL contendo um nome de domínio, ou a situação inversa. - Configurações de segurança no IE e/ou Microsoft Security Center estão altas demais, bloqueando assim a execução dos scripts.
- O Firewall do Windows está bloqueando o Apache e o MySQL. Você deve permitir as portas HTTP (80 ou 443) e a porta do MySQL (normalmente 3306) nas direções “entrada” e “saída”.
5.17 Com o Firefox, eu não consigo deletar registros de dados ou eliminar um banco de dados.¶
Muitos usuários tem confirmado que o plugin Tabbrowser Extensions que eles instalaram no Firefox estão causando o problema.
5.18 (removido)¶
5.19 Eu recebo erros de JavaScript no meu navegador.¶
Problemas foram relatados com algumas combinações de extensões de navegador. Para soluções, desativa todas as extensões então limpe o cache do seu navegador para ver se o problema desaparece.
5.20 Eu recebo erros de violação da Política de Segurança de Conteúdo.¶
Se você vê erros como:
Refused to apply inline style because it violates the following Content Security Policy directive
Isso geralmente é causado por algum software, que erroneamente reescreve cabeçalhos da Content Security Policy. Geralmente, isso é causado por um proxy antivírus ou complementos de navegador que causam tais erros.
Se você ver esses erros, tente desabilitar o proxy HTTP no antivírus ou desative a reescrita da Content Security Policy nele. Se isso não ajudar, tente desabilitar as extensões do navegador.
Alternativamente, isso também pode ser um problema de configuração do servidor (se o servidor web estiver configurado para emitir cabeçalhos da Content Security Policy, eles podem substituir os do phpMyAdmin).
Programas conhecidos por causar esse tipo de erro:
- Kaspersky Internet Security
5.21 Eu recebo erros de operação potencialmente insegura ao navegar na tabela ou executar uma consulta SQL.¶
Se você vê erros como:
A potentially unsafe operation has been detected in your request to this site.
Isso geralmente é causado por um firewall de aplicações web fazendo um filtro de solicitações. Ele tenta evitar a injeção de SQL, no entanto o phpMyAdmin é uma ferramenta projetada para executar consultas SQL, portanto ele torna-o inutilizável.
Please allow phpMyAdmin scripts from the web application firewall settings or disable it completely for phpMyAdmin path.
Programas conhecidos por causar esse tipo de erro:
- Firewall de Aplicações Web Wordfence
Usando o phpMyAdmin¶
6.1 Eu não consigo inserir novos registros em uma tabela / Eu não consigo criar uma tabela - o MySQL traz um erro SQL.¶
examine o erro SQL com cuidado. Frequentemente o problema é causado pela especificação de um tipo de coluna errado. Erros comuns incluem:
- Usar
VARCHAR
sem um argumento de tamanho - Usar
TEXT
ouBLOB
sem um argumento de tamanho
Além disso, olhe o capítulo de sintaxe no manual MySQL para confirmar que sua sintaxe está correta.
6.2 Quando eu crio uma tabela, eu defino um índice para duas colunas e o phpMyAdmin gera somente um índice com essas duas colunas.¶
Este é o jeito de criar índices multi-coluna. Se você quer dois índices, crie o primeiro quando criar a tabela, salve, então exiba as propriedades da tabela e clica no link Índice para criar o outro índice.
6.3 Como eu posso interir um valor null na minha tabela?¶
Desde a versão 2.2.3, você tem um checkbox para cada coluna que pode ser nula. Antes da 2.2.3, você tinha que colocar “null”, sem aspas, como um valor de coluna. Desde a versão 2.5.5, você tem que usar o checkbox para usar um valor NULL real, então se você entrar “NULL”, isso significará que você quer um valor literal NULL no campo, e não um valor NULL (isso funciona no PHP4).
6.4 Como eu posso fazer backup do meu banco de dados ou tabela?¶
Clique no nome de um banco de dados ou tabela no painel de navegação, as propriedades serão exibidas. Entao no menu, clique em “Exportar”, você pode despejar a estrutura, os dados, ou ambos. Isso irá gerar instruções SQL que podem ser usadas para recriar seu banco de dados/tabela. Você irá precisar escolher “Salvar como arquivo”, para que o phpMyAdmin possa transmitir o despejo resultante para sua estação. Dependendo da sua configuração PHP, você verá opções para comprimir o despejo. Veja também a variável de configuração $cfg['ExecTimeLimit']
. Para ajuda adicional neste assunto, procure pela palavra “despejo” neste documento.
6.5 Como eu posso restaurar (upload) meu banco de dados ou tabela usando um despejo? Como eu posso rodar um arquivo “.sql”?¶
Clique no nome de um banco de dados no painel de navegação, as propriedades serão exibidas. Selecione “Importar” da lista de abas no frame direito (ou “SQL” se sua versão do phpMyAdmin for anterior a 2.7.0). Na seção “Localização do arquivo de texto”, digite o caminho do nome do seu arquivo de despejo, ou use o botão Buscar. Então clique em Ir. Com a versão 2.7.0, o motor de importação foi re-escrito, se possível é sugerido que você atualize para tirar vantagem das nova funções. Para ajuda adicional neste assunto, procure pela palavra “upload” neste documento.
Nota: Para erros ao importar dumps exportados de versões mais antigas do MySQL para versões mais recentes, verifique 6.41 Recebo erros de importação ao importar dumps exportados de versões anteriores do MySQL (pré-5.7.6) para versões mais novas (5.7.7+), mas eles funcionam bem quando importados de volta nas mesmas versões antigas?.
6.6 Como eu posso usar a tabela de relações em query-por-exemplo?¶
Aqui está um exemplo com as tabelas pessoas, cidades e países, todas localizadas no banco de dados “mydb”. Se você não tem uma tabela pma_relation
, crie-a conforme explicado na seção de configuração. Entao crie as tabelas de exemplo:
CREATE TABLE REL_countries (
country_code char(1) NOT NULL default '',
description varchar(10) NOT NULL default '',
PRIMARY KEY (country_code)
) ENGINE=MyISAM;
INSERT INTO REL_countries VALUES ('C', 'Canada');
CREATE TABLE REL_persons (
id tinyint(4) NOT NULL auto_increment,
person_name varchar(32) NOT NULL default '',
town_code varchar(5) default '0',
country_code char(1) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO REL_persons VALUES (11, 'Marc', 'S', 'C');
INSERT INTO REL_persons VALUES (15, 'Paul', 'S', 'C');
CREATE TABLE REL_towns (
town_code varchar(5) NOT NULL default '0',
description varchar(30) NOT NULL default '',
PRIMARY KEY (town_code)
) ENGINE=MyISAM;
INSERT INTO REL_towns VALUES ('S', 'Sherbrooke');
INSERT INTO REL_towns VALUES ('M', 'Montréal');
Para configurar apropriadamente os links e exibição de informações:
- na tabela “REL_persons” clique em Estrutura, depois Ver relações
- for “town_code”, choose from dropdowns, “mydb”, “REL_towns”, “town_code” for foreign database, table and column respectively
- para “country_code”, escolha entre dropdowns, “mydb”, “REL_countries”, “country_code” para bancos de dados estrangeiros, tabelas e colunas respectivamente
- na tabela “REL_towns” clique em Estrutura, então Ver relações
- em “Escolha coluna a exibir”, escolha “descrição”
- repita os dois passos anteriores para a tabela “REL_countries”
Então teste desse jeito:
- Clique no nome do seu banco de dados no painel de navegação
- Escolha “SQL”
- Use as tabelas: pessoas, cidades, países
- Clique em “Executar”
- Nos campos do registro, escolha persons.person_name e clique na tickbox “Exibir”
- Faça o mesmo para towns.description e countries.descript nas outras 2 colunas
- Clique em “Executar” e você verá na caixa de query que as junções corretas foram geradas
- Clique em “Submit query”
6.7 Como eu posso usar a função “exibir coluna”?¶
A partir do exemplo anterior, crie a pma_table_info
como explicado na seção de configuração, então navegue na sua tabela de pessoas, e mova o mouse sobre o código de uma cidade ou país. Veja também 6.21 Em modo de edição/inserimento, como eu posso ver uma lista dos valores disponíveis para uma coluna, baseado em alguma tabela estrangeira? para uma função adicional que “exibir coluna” habilita: lista drop-down dos valores disponívels.
6.8 Como eu posso produzir um esquema PDF do meu banco de dados?¶
First the configuration variables “relation”, “table_coords” and “pdf_pages” have to be filled in.
- Selecione seu banco de dados no painel de navegação.
- Choose “Designer” in the navigation bar at the top.
- Move the tables the way you want them.
- Choose “Export schema” in the left menu.
- The export modal will open.
- Select the type of export to PDF, you may adjust the other settings.
- Submit the form and the file will start downloading.
Ver também
6.9 O phpMyAdmin está mudando o tipo de uma das minhas colunas!¶
Não, é o MySQL que está fazendo uma mudança silenciosa de tipo de coluna.
6.10 Quando criar um privilégio, o que acontece com os sublinhados no nome do banco de dados?¶
Se você não colocar uma barra antes do sublinhado, isso é uma concessão de coringa, e o sublinhado significa “qualquer caractere”. Então, se o nome do banco de dados é “john_db”, o usuário irá ganhar os direitos para john1db, john2db … Se você colocar uma barra antes do sublinhado, isso significa que o nome do banco de dados terá um sublinhado real.
6.11 O que é o curioso símbolo ø nas páginas das estatísticas?¶
Ele significa “média”.
6.12 Eu quero entender algumas opções de Exportação.¶
Estrutura:
- “Adicionar DROP TABLE” irá adicionar uma linha dizendo ao MySQL para eliminar a tabela, se ela já existir durante a importação. Ele NÃO elimina a tabela após você exportar, ele afeta somente o arquivo de importação.
- “Se Não Existe” irá criar a tabela somente se ela não existir. Caso contrário, você pode receber um erro se o nome da tabela existe mas tem uma estrutura diferente.
- “Adicionar valor AUTO_INCREMENT” garante que o valor AUTO_INCREMENT (se houver algum) será incluído no backup.
- “Envolver nomes de tabela e coluna com aspas” garante que os nomes de tabela e de coluna formados com caracteres especiais sejam protegidos.
- “Adicionar nos comentários” inclui comentários de coluna, relações, e tipos de mídia definidos no pmadb no despejo como comentários SQL (/* xxx */).
Dados:
- “Insert completo” adiciona os nomes de colunas em cada comando INSERT, para melhor documentação (mas com arquivo gerado maior).
- “Insert extendido” provê um arquivo de despejo menor usando somente uma vez o verbo INSERT e o nome da tabela.
- “Inserções atrasadas” são melhor explicadas no manual do MySQL - Sintaxe do INSERT DELAYED.
- “Ignorar inserções” trata erros como um aviso em vez disso. Novamente, mais informações são fornecidas no manual MySQL - Sintaxe do INSERT, mas basicamente com isso selecionado, valores inválidos são ajustados e inseridos em vez de causar falha na declaração inteira.
6.13 Eu gostaria de criar um banco de dados com um ponto no nome dele.¶
Isso é uma má ideia, porque no MySQL a sintaxe “banco_de_dados.tabela” é o jeito normal de referenciar o nome de um banco de dados e de uma tabela. Pior, o MySQL normalmente deixará você criar um banco de dados com um ponto, mas então você não conseguirá usá-lo, nem deletá-lo.
6.14 (removido).¶
6.15 Eu quero adicionar uma coluna BLOB e colocar um índice nela, mas o MySQL diz “Coluna BLOB ‘…’ usada na especificação da chave sem um comprimento de chave”.¶
O jeito certo de fazer isso, é criar uma coluna sem qualquer índice, então exibir a estrutura da tabela e usar o diálogo “Criar um índice”. Nesta página, você será capaz de escolher sua coluna BLOB e definir um tamanho para o índice, o que é a condição para criar um índice numa coluna BLOB.
6.16 Como eu posso simplesmente percorrer a página com muitos campos editáveis?¶
Você pode usar Ctrl+arrows (Option+Arrows no Safari) para mover na maioria das páginas com muitos campos editáveis (mudanças de estrutura de tabela, edição de campos, etc.).
6.17 Transformações: eu não consigo inserir meu próprio tipo de mime! Então para que serve este recurso?¶
Definir tipos MIME é inútil se você não pode colocar transformações neles. Caso contrário, você poderia simplesmente colocar um comentário na coluna. Pois inserir seu próprio tipo MIME causará sérios problemas de verificação de sintaxe e validação, isso introduz uma situação de entrada de usuário falsa de alto risco. Em vez disso, você precisa inicializar tipos MIME usando funções ou definições de tipo MIME vazias.
Além disso, você tem uma visão completa dos tipos de mime disponíveis. Quem sabe todos os tipos de mime de cor para poder inseri-los à vontade?
6.18 Favoritos: Onde posso guardar os favoritos? Por que não consigo ver nenhum favorito abaixo da caixa de consulta? Para que são essas variáveis?¶
Você precisa ter configurado o Armazenamento de configurações do phpMyAdmin para usar o recurso de favoritos. Depois de ter feito isso, você poderá usar os favoritos na aba SQL.
Ver também
6.19 Como eu posso criar um documento LATEX simples para incluir tabelas exportadas?¶
Você pode simplesmente incluir a tabela no seu documento LATEX; o documento de amostra mínima deve se parecer com o seguinte (assumindo que você exportou a tabela no arquivo table.tex
):
\documentclass{article} % or any class you want
\usepackage{longtable} % for displaying table
\begin{document} % start of document
\include{table} % including exported table
\end{document} % end of document
6.20 Eu vejo muitos bancos de dados que não são meus, e não posso acessá-los.¶
Você tem um desses privilégios globais: CREATE TEMPORARY TABLES, SHOW DATABASES, LOCK TABLES. Estes privilégios também permitem os usuários ver todos os nomes de bancos de dados. Então se seus usuários não precisam destes privilégios, você pode removê-los e sua lista de bancos de dados irá encurtar.
Ver também
6.21 Em modo de edição/inserimento, como eu posso ver uma lista dos valores disponíveis para uma coluna, baseado em alguma tabela estrangeira?¶
Você tem que configurar links apropriados entre as tabelas, e também configurar a “mostrar campo” na tabela estrangeira. Veja a 6.6 Como eu posso usar a tabela de relações em query-por-exemplo? para um exemplo. Então, se houver 100 valores ou menos na tabela estrangeira, uma lista drop-down de valores estará disponível. Você verá duas listas de valores, a primeira lista contendo a chave e a coluna exibida, a segunda lista contendo a coluna exibida e a chave. O motivo para isso é ser capaz de digitar a primeira letra de uma das chaves ou a chave de uma das colunas exibidas. Para 100 valores ou mais, uma janela distinta aparecerá, para navegar pelos valores de chaves estangeiras e escolher um. Para mudar o limite padrão de 100, veja a configuração $cfg['ForeignKeyMaxLimit']
.
6.22 Marcações: eu posso executar uma marcação padrão automaticamente quando entrar no modo Procurar para uma tabela?¶
Sim. Se uma marcação tiver o mesmo rótulo que o nome da tabela e não for uma marcação pública, ela será executada.
Ver também
6.23 Exportar: eu ouvi falar que o phpMyAdmin pode exportar arquivos do MS Excel?¶
Você pode usar o CSV para o MS Excel, que funciona fora da caixa.
Alterado na versão 3.4.5: Desde o phpMyAdmin 3.4.5 o suporte a exportação direta para Microsoft Excel 97 e mais novos foi removida.
6.24 Agora que o phpMyAdmin suporta comentários nativos de coluna MySQL 4.1.x, o que acontece com os comentários das minhas colunas armazenados no pmadb?¶
Migração automática de comentários de coluna de tabela estilo pmadb para os nativos é feita sempre que você entrar na página da Estrutura para esta tabela.
6.25 (removido).¶
6.26 Como eu posso selecionar um conjunto de registros?¶
Clique no primeiro registro do conjunto, segure a tecla Shift e clique no último registro do conjunto. Isso funciona em todos os lugares que você ver registros, por exemplo, no modo Procurar ou na página Estrutura.
6.27 Quais strings de formatação eu posso usar?¶
In all places where phpMyAdmin accepts format strings, you can use
@VARIABLE@
expansion and strftime
format strings. The expanded variables depend on a context (for
example, if you haven’t chosen a table, you can not get the table
name), but the following variables can be used:
@HTTP_HOST@
- Host HTTP que roda o phpMyAdmin
@SERVER@
- Nome do servidor MySQL
@VERBOSE@
- Nome extenso do servidor MySQL como definido em
$cfg['Servers'][$i]['verbose']
@VSERVER@
- Nome extenso do servidor MySQL se definido, normal caso contrário
@DATABASE@
- Banco de dados atualmente aberto
@TABLE@
- Tabela atualmente aberta
@COLUMNS@
- Colunas da tabela atualmente aberta
@PHPMYADMIN@
- phpMyAdmin com a versão
6.28 (withdrawn).¶
6.29 Porque eu não consigo gerar um gráfico da tabela de resultados da minha query?¶
Nem toda tabela pode ser colocada em gráfico. Somente tabelas com uma, duas ou três colunas podem ser visualizadas em gráfico. Além disso, a tabela deve estar em um formato especial para o script de gráfico entendê-la. Formatos atualmente suportados podem ser encontrados em Gráficos.
6.30 Importação: Como posso importar Shapefiles ESRI?¶
Um Shapefile ESRI é na verdade um conjunto de vários arquivos, onde o arquivo .shp contém dados geométricos e o arquivo .dbf contém dados relacionados a estes dados geométricos. Para ler dados do arquivo .dbf você tem que compilar o PHP com a extensão dBase (–enable-dbase). Caso contrário, somente os dados geométricos serão importados.
Para subir estes conjuntos de arquivos você pode usar um dos seguintes métodos:
Configurar o diretório de upload com a configuração $cfg['UploadDir']
, suba ambos arquivos .shp e .dbf com o mesmo nome de arquivo e escolha o arquivo .shp da página de importação.
Crie um arquivo zip com os arquivos .shp e .dbf e importe-os. Para isto funcionar, você precisa definir $cfg['TempDir']
para um lugar onde o usuário do servidor web possa escrever (por exemplo './tmp'
).
Para criar um diretório temporário em um sistema baseado em UNIX, você pode fazer:
cd phpMyAdmin
mkdir tmp
chmod o+rwx tmp
6.31 Como eu posso criar uma relação no Designer?¶
Para selecionar a relação, clique na coluna exibida em rosa. Para marcar/desmarcar uma coluna como a coluna exibida, clique no ícone “Escolher coluna a exibir”, então clique no nome da coluna apropriada.
6.32 Como eu posso usar a função de zoom de pesquisa?¶
A função de zoom de pesquisa é uma alternativa para a função de pesquisa de tabela. Ela permite você explorar uma tabela representando seus dados em um scatter plot. Você pode localizar esta função selecionando uma tabela e clicando na aba Search. Uma das sub-abas na página Table Search é a Zoom Search.
Considere a tabela REL_persons na 6.6 Como eu posso usar a tabela de relações em query-por-exemplo? para um exemplo. Para usar a zoom search, duas colunas precisam ser selecionadas, por exemplo, id e town_code. Os valores da id irão ser representados em um eixo e os valores town_code no outro eixo. Cada registro será representado como um ponto em um gráfico cartesiano baseado em sua id e town_code. Você pode incluir dois critérios de pesquisa adicionais além dos dois campos a exibir.
Você pode escolher qual campo deve ser mostrado como rótulo para cada ponto. Se uma coluna exibida foi definida para a tabela (veja a 6.7 Como eu posso usar a função “exibir coluna”?), ela será considerada como o rótulo a não ser que você especifique o contrário. Você também pode selecionar o número máximo de registros que você quer exibir no gráfico especificando ele no campo “Limite de registros a usar”. Assim que você escolher seus critérios, clique em “Ir” para mostrar o gráfico.
After the plot is generated, you can use the mouse wheel to zoom in and out of the plot. In addition, panning feature is enabled to navigate through the plot. You can zoom-in to a certain level of detail and use panning to locate your area of interest. Clicking on a point opens a dialogue box, displaying field values of the data row represented by the point. You can edit the values if required and click on submit to issue an update query. Basic instructions on how to use can be viewed by clicking the ‘How to use?’ link located just above the plot.
6.33 Quando navego por uma tabela, como posso copiar o nome de uma coluna?¶
Selecionando o nome da coluna dentro do cabeçalho da navegação de tabela para copiar é difícil, já que as colunas suportam reordenamento pelo arrastar das células do cabeçalho assim como a ordenação de campos clicando no link do nome da coluna. Para copiar um nome de coluna, dê um clique duplo na área vazia próxima ao nome da coluna quando a tooltip te aconselhar a fazer isso. Isso irá lhe mostrar uma caixa de input com o nome da coluna. Você pode dar um clique direito no nome da coluna dentro desta caixa de input para copiá-lo para sua área de transferência.
6.34 Como eu posso usar a função de Tabelas Favoritas?¶
A função Tabelas Favoritas é muito semelhante à função Tabelas Recentes. Permite adicionar um atalho às tabelas frequentemente usadas em qualquer base de dados no painel de navegação. Você pode acessar facilmente qualquer tabela na listagem apenas escolhendo-a. Estas tabelas serão colocadas no armazenamento local do seu navegador se você não tiver configurado seu phpMyAdmin Configuration Storage. Se tiver, serão armazenadas no phpMyAdmin Configuration Storage.
IMPORTANTE: Na falta do phpMyAdmin Configuration Storage, suas tabelas Favoritas poderão ser diferentes em navegadores diferentes baseado no que foi selecionado em cada navegador.
Para adicionar um tabela à lista de Favoritos, simplesmente clique na estrela Gray em frente ao nome da tabela na listagem de tabelas de um Banco de Dados e espere até que se torne Yellow. Para remover uma tabela da lista, simplesmente clique na estrela Yellow e espere até que se torne Gray novamente.
Usando $cfg['NumFavoriteTables']
no seu arquivo config.inc.php
, você pode definir um número máximo de tabelas favoritas exibidas no painel de navegação. Seu valor padrão é 10.
6.35 Como eu posso usar a ferramenta de pesquisa Range?¶
Com a ajuda da ferramenta de pesquisa de campo, pode-se especificar um alcance de valores para uma(s) coluna(s) particular enquanto executa-se uma operação de pesquisa numa tabela através da tab Pesquisa.
Para usar essa ferramenta simplesmente clique nos operadores BETWEEN ou NOT BETWEEN pelo operador de lista selecionada em frente do nome da coluna. Escolhendo uma das opções acima, uma caixa de diálogo aparecerá pedindo pelo valor Mínimo e Máximo para aquela coluna. Somente o alcance especificado de valores será incluído no caso de BETWEEN e excluído no caso de NOT BETWEEN dos resultados finais.
Nota: A ferramenta de pesquisa Range trabalhará somente colunas de tipo de dados Numérico e Data.
6.36 O que é colunas Central e como eu posso usar essa ferramenta?¶
Como o nome sugere, a ferramenta de colunas Central habilita a manter uma lista central de colunas por banco de dados para evitar nome similar para o mesmo elemento de dado e traz a consistência do tipo de dado para o mesmo elemento de dado. Você pode usar a lista central de colunas para adicionar um elemento para qualquer estrutura de tabela naquele banco de dados que gravará escrevendo um nome de coluna similar e uma definição de coluna.
Para adicionar uma coluna para a lista central, vá para a página de estrutura de tabela, cheque as colunas que você quer incluir e então simplesmente clique em “Adicionar para colunas centrais”. Se você quiser adicionar todas as colunas únicas de mais de uma tabela de um banco de dados então vá para a página de estrutura de dados, cheque as tabelas que você quer incluir e então selecione “Adicionar colunas para a lista central”.
Para remover uma coluna da lista central, vá para a página de estrutura de Tabela, selecione as colunas que você quer remover e então simplesmente clique em “Remover das colunas centrais”. Se você quiser remover todas as colunas de mais de uma tabela de um banco de dados então vá para a página de estrutura do banco de dados, selecione as tabelas que você quiser incluir e então selecione “Remover colunas da lista central”.
Para exibir e gerenciar a lista central, selecione o banco de dados em que você quiser gerenciar as colunas centrais para então clicar pelo menu em “colunas Central”. Você será levado para a página onde você terá opções para editar, deletar ou adicionar novas colunas para a lista central.
6.37 Como eu posso usar a ferramenta de estrutura de Tabela de Improviso?¶
Melhorar a ferramenta de estrutura de tabela ajuda a trazer a estrutura de tabela até o Formulário Normal Terceirizado. Uma mágica é apresentada ao usuário que formula perguntas sobre os elementos durante os vários passos para normalização e uma nova estrutura é proposta de acordo com o que traz a tabela dentro formulário Normal Primeiro/Segundo/Terceiro. Na inicialização da mágica, o usuário retorna para selecionar até o formulário normal que eles quiserem para normalizar a estrutura da tabela.
Aqui está uma tabela de exemplo que você pode usar para testar todos os três Primeiro, Segundo e Terceiro Formulários Normais.
CREATE TABLE `VetOffice` (
`petName` varchar(64) NOT NULL,
`petBreed` varchar(64) NOT NULL,
`petType` varchar(64) NOT NULL,
`petDOB` date NOT NULL,
`ownerLastName` varchar(64) NOT NULL,
`ownerFirstName` varchar(64) NOT NULL,
`ownerPhone1` int(12) NOT NULL,
`ownerPhone2` int(12) NOT NULL,
`ownerEmail` varchar(64) NOT NULL,
);
A tabela acima não está no Primeiro Formulário normal quando nenhuma primary key existe. Chave primária é suposta a ser (petName, ownerLastName, ownerFirstName). Se a primary key é escolhida como sugerido na tabela resultante não será no Segundo como também no Terceiro Formulário Normal quando as dependências seguintes existirem.
(OwnerLastName, OwnerFirstName) -> OwnerEmail
(OwnerLastName, OwnerFirstName) -> OwnerPhone
PetBreed -> PetType
Como diz, OwnerEmail depende de OwnerLastName e de OwnerFirstName. OwnerPhone depende de OwnerLastName e de OwnerFirstName. PetType depende de PetBreed.
6.38 Como posso reatribuir valores de auto-incremento?¶
Alguns usuários preferem que seus valores de AUTO_INCREMENT sejam consecutivos; isso não é sempre o caso após apagar uma linha.
Aqui estão os passos para realizar isso. Esses são passos manuais porque eles envolvem uma verificação manual em um ponto.
- Certifique-se de que você tem acesso exclusivo à tabela para reorganizar
- Na sua coluna de primary key (ex: id), remova a configuração AUTO_INCREMENT
- Apague sua chave primária em Estrutura > índices
- Crie uma nova coluna futuro_id como chave primária, AUTO_INCREMENT
- Navegue até sua tabela e verifique que os novos incrementos correspondam ao que você está esperando
- Remova sua antiga coluna id
- Renomeie a coluna futuro_id para id
- Mova a nova coluna id através de Estrutura > Mover colunas
6.39 O que é a opção “Ajustar privilégios” ao renomear, copiar ou mover um banco de dados, tabela, coluna ou procedimento?¶
Ao renomear/copiar/mover um banco de dados/tabela/coluna/procedimento, o MySQL não ajusta os privilégios originais relacionados a esses objetos por conta própria. Ao selecionar esta opção, o phpMyAdmin ajustará a tabela de privilégios para que os usuários tenham os mesmos privilégios nos novos itens.
Por exemplo: o usuário ‘bob’@’localhost’ tem o privilégio ‘SELECT’ em uma coluna chamada ‘id’. Agora se esta coluna for renomeada para ‘id_new’, o MySQL, por conta própria, não ajustará os privilégios da coluna ao novo nome da coluna. O phpMyAdmin pode fazer este ajuste para você automaticamente.
Notas:
- Ao ajustar os privilégios para um banco de dados, os privilégios de todos os elementos relacionados ao banco de dados (tabelas, colunas e procedimentos) também são ajustados ao novo nome do banco de dados.
- Da mesma forma, ao ajustar privilégios para uma tabela, os privilégios de todas as colunas dentro da nova tabela também são ajustados.
- Ao ajustar privilégios, o usuário que executa a operação deve ter os seguintes privilégios:
- Privilégios de SELECT, INSERT, UPDATE e DELETE nas seguintes tabelas: mysql.`db`, mysql.`columns_priv`, mysql.`tables_priv`, mysql.`procs_priv`
- Privilégio de FLUSH (GLOBAL)
Assim, se você deseja replicar o banco de dados/tabela/coluna/procedimento tal como ele é ao renomear/copiar/mover esses objetos, certifique-se de que essa opção esteja marcada.
6.40 Vejo a caixa de seleção “Ligar parâmetros” na página “SQL”. Como faço para escrever consultas SQL parametrizadas?¶
A partir da versão 4.5, o phpMyAdmin permite aos usuários executar consultas parametrizadas na página “SQL”. Os parâmetros devem ser prefixados com dois pontos (:) e quando a caixa de seleção “Ligar parâmetros” estiver marcada, esses parâmetros serão identificados e os campos de entrada para esses parâmetros serão apresentados. Os valores inseridos nesses campos serão substituídos na consulta antes de serem executados.
6.41 Recebo erros de importação ao importar dumps exportados de versões anteriores do MySQL (pré-5.7.6) para versões mais novas (5.7.7+), mas eles funcionam bem quando importados de volta nas mesmas versões antigas?¶
Se você receber erros como #1031 - O mecanismo de armazenamento de tabelas para ‘nome_da_tabela’ não possui esta opção ao importar os dumps exportados de servidores MySQL pré-5.7.7 para versões do MySQL 5.7.7+, pode ser porque ROW_FORMAT = FIXED não é suportado em tabelas InnoDB. Além disso, o valor de innodb_strict_mode definirá se isso será relatado como um aviso ou como um erro.
Desde a versão 5.7.9 do MySQL, o valor padrão para innodb_strict_mode é ON e, portanto, gerará um erro quando uma instrução CREATE TABLE ou ALTER TABLE desse tipo for encontrada.
Existem duas maneiras de prevenir tais erros ao importar:
- Mudar o valor de innodb_strict_mode para OFF antes de iniciar a importação e mudar para ON depois que a importação for concluída com sucesso.
- Isso pode ser obtido de duas maneiras:
- Vá para a página ‘Variáveis’ e edite o valor de innodb_strict_mode
- Execute a consulta: SET GLOBAL `innodb_strict_mode = ‘[value]’`
Depois que a importação for concluída, sugere-se que o valor de innodb_strict_mode seja resetado para o valor original.
Projeto phpMyAdmin¶
7.1 Eu encontrei um bug. Como eu informo ele aos desenvolvedores?¶
Nosso rastreador de problemas está localizado em <https://github.com/phpmyadmin/phpmyadmin/issues>. Para questões de segurança, consulte as instruções em <https://www.phpmyadmin.net/security> para enviar um e-mail diretamente aos desenvolvedores.
7.2 Eu quero traduzir as mensagens para uma nova língua ou atualizar uma língua existente, onde eu começo?¶
As traduções são muito bem-vindas e tudo o que você precisa ter é a habilidade da tradução. O meio mais fácil é usar nosso serviço de tradução online. Você pode querer olhar todas as possibilidades de tradução na seção traduzir no nosso site.
7.3 Eu gostaria de ajudar com o desenvolvimento do phpMyAdmin. O que eu devo fazer?¶
Nós agradecemos toda a contribuição para o desenvolvimento do phpMyAdmin. Você pode olhar todas as possibilidades de contribuição na seção de contribuições no nosso site.
Ver também
Segurança¶
8.1 Onde eu posso conseguir informações quando a alertas de segurança emitidos para o phpMyAdmin?¶
Favor verifique a página <https://www.phpmyadmin.net/security/>.
8.2 Como eu posso proteger o phpMyAdmin contra ataques de força bruta?¶
Se você usa o servidor web Apache, o phpMyAdmin exporta informações sobre autenticação para o ambiente Apache e isso pode ser usado nos logs do Apache. Atualmente existem duas variáveis disponíveis:
userID
- Nome de usuário do usuário atualmente ativo (não precisa estar logado).
userStatus
- Status do usuário atualmente ativo, um destes:
ok
(usuário está logado),mysql-denied
(o MySQL negou o login do usuário),allow-denied
(usuário negado por regras allow/deny),root-denied
(root negado na configuração),empty-denied
(senha vazia é negada).
Diretiva LogFormat
para o Apache pode parecer com o seguinte:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
Você pode usar depois qualquer ferramenta de análise de log para detectar possíveis tentativas de invasão.
8.3 Por que existem caminhos sendo exibidos ao carregar diretamente determinados arquivos?¶
Esse é um problema de configuração do servidor. Nunca habilite display_errors
em um site de produção.
8.4 Os arquivos CSV exportados do phpMyAdmin podem permitir um ataque de injeção de fórmula.¶
É possível gerar um arquivo CSV que, ao ser importado para um programa de planilhas como o Microsoft Excel, poderia potencialmente permitir a execução de comandos arbitrários.
Os arquivos CSV gerados pelo phpMyAdmin podem potencialmente conter texto que seria interpretado por um programa de planilhas como uma fórmula, mas não acreditamos que escapar esses campos seja o comportamento apropriado. Não há como escapar e diferenciar apropriadamente entre uma saída de texto desejada e uma fórmula que deveria ser escapada, e o CSV é um formato de texto onde definições de função não deveriam ser interpretadas, de qualquer forma. Nós discutimos isso extensivamente e acreditamos que, ao invés disso, é responsabilidade do programa de planilhas analisar e tratar adequadamente tais dados na entrada.
O Google também tem uma visão similar.
Informações aos Desenvolvedores¶
O phpMyAdmin é Open Source, então você é convidado a contribuir com ele. Muitas ótimas funções foram escritas por outras pessoas e você também pode ajudar a tornar o phpMyAdmin uma ferramenta útil.
Você pode olhar todas as possibilidades de contribuição na seção de contribuições no nosso site <http://www.phpmyadmin.net/home_page/improve.php>`_.
Política de segurança¶
A equipe de desenvolvedores do phpMyAdmin está tendo muito esforço em tornar o phpMyAdmin o mais seguro possível. Mas, ainda assim, uma aplicação web como o phpMyAdmin pode ser vulnerável a uma série de ataques e novas formas de abuso ainda estão sendo exploradas.
For every reported vulnerability we issue a phpMyAdmin Security Announcement (PMASA) and it get’s assigned a CVE ID as well. We might group similar vulnerabilities to one PMASA (eg. multiple XSS vulnerabilities can be announced under one PMASA).
Se você acha que encontrou uma vulnerabilidade, consulte Relatando problemas de segurança.
Vulnerabilidades típicas¶
In this section, we will describe typical vulnerabilities, which can appear in our code base. This list is by no means complete, it is intended to show typical attack surface.
Cross-site scripting (XSS)¶
Quando o phpMyAdmin mostra dados do usuário, por exemplo algo dentro do banco de dados de um usuário, todos os caracteres especiais html devem ser escapados. Quando este escape falta em algum lugar, um usuário mal-intencionado pode preencher um banco de dados com conteúdo especialmente criado para enganar outro usuário desse banco de dados, levando-o a executar algo. Isso poderia, por exemplo, ser um código JavaScript que faria um número qualquer de coisas desagradáveis.
O phpMyAdmin tenta escapar todos os dados de usuário antes de serem processados em html para o navegador.
Ver também
Cross-site request forgery (CSRF)¶
Um invasor poderia enganar um usuário do phpMyAdmin, fazendo-o clicar em um link para provocar alguma ação no phpMyAdmin. Este link poderia ser enviado por e-mail ou algum site aleatório. Se for bem sucedido, o invasor poderia realizar alguma ação com os privilégios dos usuários.
Para mitigar isso, o phpMyAdmin exige que um token seja enviado em solicitações sensíveis. A idéia é que um invasor não possui o token atualmente válido para incluir no link apresentado.
O token é gerado novamente para cada login, portanto, geralmente é válido apenas por tempo limitado, o que torna mais difícil para o invasor obter um token válido.
Ver também
Injeção SQL¶
Como todo o propósito do phpMyAdmin é realizar consultas sql, esta não é a nossa preocupação principal. A injeção de SQL é sensível para nós, no entanto, quando se trata da conexão de controle do mysql. Esta conexão de controle pode ter privilégios adicionais que o usuário conectado não possui. Por exemplo, acesso ao Armazenamento de configurações do phpMyAdmin.
User data that is included in (administrative) queries should always be run through DatabaseInterface::quoteString().
Ver também
Ataque de força bruta¶
O phpMyAdmin por si só não limita as tentativas de autenticação de nenhuma forma. Isso é causado pela necessidade de se trabalhar em um ambiente sem estado, onde não há como proteger contra tais tipos de coisas.
Para mitigar isso, você pode usar Captcha ou utilizar ferramentas externas, como o fail2ban, isso é descrito com mais detalhes em Protegendo sua instalação do phpMyAdmin.
Ver também
Relatando problemas de segurança¶
Se você encontrar um problema de segurança no código de programação do phpMyAdmin, entre em contato com a equipe de segurança do phpMyAdmin antes de publicá-lo. Desta forma, podemos preparar uma correção e liberá-la junto com seu anúncio. Você também receberá o crédito em nosso anúncio de segurança. Você pode, opcionalmente, criptografar seu relatório com a chave PGP ID DA68AB39218AB947
com a seguinte impressão digital:
pub 4096R/DA68AB39218AB947 2016-08-02
Key fingerprint = 5BAD 38CF B980 50B9 4BD7 FB5B DA68 AB39 218A B947
uid phpMyAdmin Security Team <security@phpmyadmin.net>
sub 4096R/5E4176FB497A31F7 2016-08-02
A chave pode ser obtida do servidor de chaves ou está disponível no chaveiro phpMyAdmin disponível no nosso servidor de download ou usando Keybase.
Se você tiver sugestões sobre como melhorar o phpMyAdmin para torná-lo mais seguro, informe no nosso rastreador de problemas. As sugestões de melhoria existentes podem ser encontradas com o rótulo hardening.
Distribuição e empacotamento do phpMyAdmin¶
Este documento é feito para dar conselhos às pessoas que querem redistribuir o phpMyAdmin dentro de outros pacotes de software, como distribuições Linux ou algum pacote multifuncional que inclui servidor web e servidor MySQL.
Geralmente, você pode customizar alguns aspectos básicos (caminhos para alguns arquivos e comportamento) no arquivo libraries/vendor_config.php
.
Por exemplo, se você quiser que o script de instalação gere um arquivo de configuração em var, altere SETUP_CONFIG_FILE
para /var/lib/phpmyadmin/config.inc.php
e provavelmente você também irá querer pular a verificação de permissão de escrita do diretório, para isso defina SETUP_DIR_WRITABLE
para false.
Bibliotecas externas¶
O phpMyAdmin inclui várias bibliotecas externas, você pode querer substituí-las com as de sistema se elas estiverem disponíveis, mas saiba que você deve testar se a versão que você quer fornecer é compatível com a que enviamos.
Lista de bibliotecas externas atualmente conhecidas:
- js/vendor
- jQuery js framework e várias bibliotecas js.
- vendor/
- O kit de download inclui vários pacotes Composer como dependências.
Specific files LICENSES¶
phpMyAdmin distributed themes contain some content that is under licenses.
- The icons of the Original and pmahomme themes are from the Silk Icons.
- Some icons of the Metro theme are from the Silk Icons.
- themes/*/img/b_rename.svg Is a Icons8, icon from the Android L Icon Pack Collection. The icon rename.
- themes/metro/img/user.svg Is a IcoMoon the user
CC BY 4.0 or GPL
Licenses for vendors¶
- Silk Icons are under the CC BY 2.5 or CC BY 3.0 licenses.
- rename from Icons8 is under the “public domain” (CC0 1.0) license.
- IcoMoon Free is under “CC BY 4.0 or GPL”.
Direitos autorais¶
Copyright (C) 1998-2000 Tobias Ratschiller <tobias_at_ratschiller.com>
Copyright (C) 2001-2018 Marc Delisle <marc_at_infomarc.info>
Olivier Müller <om_at_omnis.ch>
Robin Johnson <robbat2_at_users.sourceforge.net>
Alexander M. Turek <me_at_derrabus.de>
Michal Čihař <michal_at_cihar.com>
Garvin Hicking <me_at_supergarv.de>
Michael Keck <mkkeck_at_users.sourceforge.net>
Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
[check credits for more details]
Este programa é um software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License versão 2, conforme publicada pela Free Software Foundation.
Este programa é distribuído na esperança de ser útil, mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIABILIDADE ou ADEQUAÇÃO A UM PROPÓSITO PARTICULAR. Veja a GNU General Public License para mais detalhes.
Você deve ter recebido uma cópia da GNU General Public License junto com este programa. Se não, veja <https://www.gnu.org/licenses/>.
Licenças de terceiros¶
phpMyAdmin includes several third-party libraries which come under their respective licenses.
A licença da jQuery, que é onde nós obtemos os arquivos sob js/vendor/jquery/ é (MIT|GPL), uma cópia de cada licença é disponibilizada nesse repositório (GPL é disponibilizada como LICENSE, MIT como js/vendor/jquery/MIT-LICENSE.txt).
O kit de download inclui também várias bibliotecas composer. Veja as informações de licenciamento no diretório vendor/.
Créditos¶
Créditos, em ordem cronológica¶
- Tobias Ratschiller <tobias_at_ratschiller.com>
- criador do projeto phpMyAdmin
- mantedor desde 1998 até o verão de 2000
- Marc Delisle <marc_at_infomarc.info>
- versão multi-idiomas em dezembro de 1998
- várias correções e melhorias
- primeira versão do analisador de SQL (a maior parte dele)
- mantedor desde 2001 até 2015
- Olivier Müller <om_at_omnis.ch>
- iniciou o projeto phpMyAdmin no SourceForge em março de 2001
- sincronizou diferentes árvores existentes do CVS com novas funções e correções de bugs
- melhorias multi-idioma, seleção dinâmica de linguagem
- muitas correções de bugs e melhorias
- Loïc Chapeaux <lolo_at_phpheaven.net>
- reescreveu e otimizou conteúdo JavaScript, DHTML e DOM
- reescreveu os scripts para seguir os padrões de codificação PEAR e gerou códigos compatíveis com XHTML1.0 e CSS2
- melhorou o sistema de detecção de idioma
- muitas correções de bugs e melhorias
- Robin Johnson <robbat2_at_users.sourceforge.net>
- Armel Fauveau <armel.fauveau_at_globalis-ms.com>
- função de marcações
- função de múltiplos despejos
- função de despejo gzip
- função de despejo zip
- Geert Lund <glund_at_silversoft.dk>
- várias correções
- moderador do antigo fórum de usuários do phpMyAdmin phpwizard.net
- Korakot Chaovavanich <korakot_at_iname.com>
- função “inserir como novo registro”
- Pete Kelly <webmaster_at_trafficg.com>
- reescreveu e consertou o código de despejo
- correções de bugs
- Steve Alberty <alberty_at_neptunlabs.de>
- reescreveu o código de despejo para o PHP4
- estatísticas de tabelas do MySQL
- correções de bugs
- Benjamin Gandon <gandon_at_isia.cma.fr>
- autor principal da versão 2.1.0.1
- correções de bugs
- Alexander M. Turek <me_at_derrabus.de>
- compatibilidade com o MySQL 4.0 / 4.1 / 5.0
- interface abstrata de banco dados (PMA_DBI) com suporta a MySQLi
- administração de privilégios
- exportações XML
- vários recursos e correções
- atualizações de arquivo da língua alemã
- Mike Beck <mike.beck_at_web.de>
- junções automáticas em QBE
- links de coluna na visualização de impressão
- Visão de relação(ões)
- Michal Čihař <michal_at_cihar.com>
- função de criação/exibição de índices melhorada
- função de uso de conjunto de caracteres para HTML diferente do MySQL
- melhorias da função de exportação
- vários recursos e correções
- atualizações de arquivo da língua tcheca
- site atualmente criado para o phpMyAdmin
- Christophe Gesché do “Gerador de Formulário MySQL para PHPMyAdmin” (https://sourceforge.net/projects/phpmysqlformgen/)
- sugeriu o patch para visualização de impressão de múltiplas tabelas
- Garvin Hicking <me_at_supergarv.de>
- construiu o patch para exibição vertical dos registros de tabela
- construiu a janela de query baseada em JavaScript + histórico SQL
- Melhoria dos comentários de coluna/banco de dados
- (MIME) - Transformações para campos
- Uso de nomes personalizados de alias para bancos de dados no frame esquerdo
- exibição de tabela hierárquica/aninhada
- scratchboard PDF para WYSIWYG - distribuição das relações PDF
- novos conjuntos de ícones
- exibição vertical da página de propriedades de coluna
- algumas correções de bugs, funções, suporte, adições da língua alemã
- Yukihiro Kawada <kawada_at_den.fujifilm.co.jp>
- função de conversão para codificação de kanjis japoneses
- Piotr Roszatycki <d3xter_at_users.sourceforge.net> e Dan Wilson
- o modo de autenticação por Cookie
- Axel Sander <n8falke_at_users.sourceforge.net>
- função de links de relacionamento de tabelas
- Maxime Delorme <delorme.maxime_at_free.fr>
- Saída de esquema PDF, obrigado também a Olivier Plathey pela biblioteca “FPDF” (veja <http://www.fpdf.org/>), Steven Wittens pela biblioteca “UFPDF” e Nicola Asuni pela biblioteca “TCPDF” (veja <https://tcpdf.org/>).
- Olof Edlund <olof.edlund_at_upright.se>
- servidor de validação SQL
- Ivan R. Lanin <ivanlanin_at_users.sourceforge.net>
- logo do phpMyAdmin (até junho de 2004)
- Mike Cochrane <mike_at_graftonhall.co.nz>
- biblioteca blowfish do projeto Horde (removida na versão 4.0)
- Marcel Tschopp <ne0x_at_users.sourceforge.net>
- suporte ao mysqli
- muitas correções de bugs e melhorias
- Nicola Asuni (Tecnick.com)
- biblioteca TCPDF (<https://tcpdf.org>)
- Michael Keck <mkkeck_at_users.sourceforge.net>
- replanejamento para a versão 2.6.0
- logo do phpMyAdmin com o veleiro (junho de 2004)
- Mathias Landhäußer
- representação em conferências
- Sebastian Mendel <cybot_tm_at_users.sourceforge.net>
- melhorias na interface
- várias correções de bugs
- Ivan A Kirillov
- novo Designer de relacionamentos
- Raj Kissu Rajandran (Google Summer of Code 2008)
- suporte a streaming de BLOB (removido na versão 4.0)
- Piotr Przybylski (Google Summer of Code 2008 e 2010)
- melhoria do script de instalação
- preferências de usuário
- suporte ao Drizzle
- Derek Schaefer (Google Summer of Code 2009)
- melhoria do sistema de importação
- Alexander Rutkowski (Google Summer of Code 2009)
- mecanismo de rastreamento
- Zahra Naeem (Google Summer of Code 2009)
- Função de sincronização (removida na versão 4.0)
- Tomáš Srnka (Google Summer of Code 2009)
- Suporte a replicação
- Muhammad Adnan (Google Summer of Code 2010)
- exportação do esquema de relacionamentos para múltiplos formatos
- Lori Lee (Google Summer of Code 2010)
- Melhorias na interface de usuário
- Editor ENUM/SET
- Interface simplificada para exportação/importação
- Ninad Pundalik (Google Summer of Code 2010)
- AJAXificação da interface
- Martynas Mickevičius (Google Summer of Code 2010)
- Gráficos
- Barrie Leslie
- suporte a streaming BLOB com a extensão PBMS do PHP (removido na versão 4.0)
- Ankit Gupta (Google Summer of Code 2010)
- construtor visual de query
- Madhura Jayaratne (Google Summer of Code 2011)
- suporte a OpenGIS
- Ammar Yasir (Google Summer of Code 2011)
- pesquisa detalhada
- Aris Feryanto (Google Summer of Code 2011)
- melhorias do modo de navegação
- Thilanka Kaushalya (Google Summer of Code 2011)
- AJAXificação
- Tyron Madlener (Google Summer of Code 2011)
- estatísticas e gráficos de query para a página de status
- Zarubin Stas (Google Summer of Code 2011)
- testes automatizados
- Rouslan Placella (Google Summer of Code 2011 e 2012)
- suporte melhorado para rotinas armazenadas, gatilhos e eventos
- atualizações da tradução do italiano
- remoção de frames, navegação nova
- Dieter Adriaenssens
- várias correções de bugs
- atualizações da tradução do holandês
- Alex Marin (Google Summer of Code 2012)
- novos plugins e propriedades de sistema
- Thilina Buddika Abeyrathna (Google Summer of Code 2012)
- refatoração
- Atul Pratap Singh (Google Summer of Code 2012)
- refatoração
- Chanaka Indrajith (Google Summer of Code 2012)
- refatoração
- Yasitha Pandithawatta (Google Summer of Code 2012)
- testes automatizados
- Jim Wigginton (phpseclib.sourceforge.net)
- phpseclib
- Bin Zu (Google Summer of Code 2013)
- refatoração
- Supun Nakandala (Google Summer of Code 2013)
- refatoração
- Mohamed Ashraf (Google Summer of Code 2013)
- relatório de erros AJAX
- Adam Kang (Google Summer of Code 2013)
- testes automatizados
- Ayush Chaudhary (Google Summer of Code 2013)
- testes automatizados
- Kasun Chathuranga (Google Summer of Code 2013)
- Melhorias na interface
- Hugues Peccatte
- Carregar/salvar consultas por exemplo (bookmarks de busca em banco de dados)
- Smita Kumari (Google Summer of Code 2014)
- Colunas da lista central
- Melhorar a estrutura de tabela (normalização)
- Ashutosh Dhundhara (Google Summer of Code 2014)
- Melhorias na interface
- Dhananjay Nakrani (Google Summer of Code 2014)
- relatório de erros PHP
- Edward Cheng (Google Summer of Code 2014)
- Caixa de consulta SQL
- Kankanamge Bimal Yashodha (Google Summer of Code 2014)
- Refatorando: integração Designer/schema
- Chirayu Chiripal (Google Summer of Code 2014)
- Manejadores de campo customizados (entrada baseada em transformações MIME)
- Exportar com mudança de nome de tabela/coluna
- Dan Ungureanu (Google Summer of Code 2015)
- Novo interpretador e analisador
- Nisarg Jhaveri (Google Summer of Code 2015)
- Configurações da página
- Integração de depuração SQL ao Console
- Outras melhorias de interface
- Deven Bansod (Google Summer of Code 2015)
- Imprimir visualização usando CSS
- Outras melhorias de interface e novas funcionalidades
- Deven Bansod (Google Summer of Code 2017)
- Melhorias no Servidor de Relatório de Erros
- Testes em Selenium aprimorados
- Manish Bisht (Google Summer of Code 2017)
- Interface de usuário mobile
- Remove código JavaScript inline
- Outras melhorias de interface
- Raghuram Vadapalli (Google Summer of Code 2017)
- Interface de consulta em múltiplas tabelas
- Permita que o Designer trabalhe com tabelas de outros bancos de dados
- Outras melhorias de interface
- Maurício Meneghini Fauth
- Grandes aprimoramentos e atualizações no núcleo do JavaScript
- funcionalidade da biblioteca JavaScript Modernize
- Modernizar templates e introduzir o Twig
- William Desportes
- Aprimoramentos no estilo de código baseado no PHPStan
- Melhorias nos links para a documentação externa do MySQL e MariaDB
- Várias outras correções de bugs
- Emanuel Bronshtein
- Avaliação abrangente de segurança e sugestões
- Lakshya Arora (Google Summer of Code 2018)
- Várias melhorias incluindo:
- Integrar preferências de usuário com armazenamento local
- Usar uma tela modal de login após a sessão expirar
- Adicionar suporte para CHECK CONSTRAINTS
- e mais!
- Várias melhorias incluindo:
- Saksham Gupta (Google Summer of Code 2018)
- Ferramenta geradora de tema automatizada
- Leonardo Strozzi (Google Summer of Code 2018)
- Refatoração dos modelos Twig a outros aprimoramentos no código interno
- Piyush Vijay (Google Summer of Code 2018)
- Modernizar o código JavaScript incluindo introdução ao Webpack, Babel e Yarn bem como eslint e Jsdoc
e também às seguintes pessoas que contribuíram com mudanças menores, melhorias, correções de bugs ou suporte a uma nova linguagem desde a versão 2.1.0:
Bora Alioglu, Ricardo ?, Sven-Erik Andersen, Alessandro Astarita, Péter Bakondy, Borges Botelho, Olivier Bussier, Neil Darlow, Mats Engstrom, Ian Davidson, Laurent Dhima, Kristof Hamann, Thomas Kläger, Lubos Klokner, Martin Marconcini, Girish Nair, David Nordenberg, Andreas Pauley, Bernard M. Piller, Laurent Haas, “Sakamoto”, Yuval Sarna, www.securereality.com.au, Alexis Soulard, Alvar Soome, Siu Sun, Peter Svec, Michael Tacelosky, Rachim Tamsjadi, Kositer Uros, Luís V., Martijn W. van der Lee, Algis Vainauskas, Daniel Villanueva, Vinay, Ignacio Vazquez-Abrams, Chee Wai, Jakub Wilk, Thomas Michael Winningham, Vilius Zigmantas, “Manuzhai”.
Tradutores¶
As pessoas a seguir contribuíram com a tradução do phpMyAdmin:
Albanês
- Arben Çokaj <acokaj_at_shkoder.net>
Árabe
- Ahmed Saleh Abd El-Raouf Ismae <a.saleh.ismael_at_gmail.com>
- Ahmed Saad <egbrave_at_hotmail.com>
- hassan mokhtari <persiste1_at_gmail.com>
Armênio
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Azeri
- Mircəlal <01youknowme_at_gmail.com>
- Huseyn <huseyn_esgerov_at_mail.ru>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
- Jafar <sharifov_at_programmer.net>
Bielorrusso
- Viktar Palstsiuk <vipals_at_gmail.com>
Búlgaro
- Boyan Kehayov <bkehayov_at_gmail.com>
- Valter Georgiev <blagynchy_at_gmail.com>
- Valentin Mladenov <hudsonvsm_at_gmail.com>
- P <plamen_mbx_at_yahoo.com>
- krasimir <vip_at_krasio-valia.com>
Catalão
- josep constanti <jconstanti_at_yahoo.es>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinês (China)
- Vincent Lau <3092849_at_qq.com>
- Zheng Dan <clanboy_at_163.com>
- disorderman <disorderman_at_qq.com>
- Rex Lee <duguying2008_at_gmail.com>
- <fundawang_at_gmail.com>
- popcorner <memoword_at_163.com>
- Yizhou Qiang <qyz.yswy_at_hotmail.com>
- zz <tczzjin_at_gmail.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinês (Taiwan)
- Albert Song <albb0920_at_gmail.com>
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Kölsch
- Purodha <publi_at_web.de>
Tcheco
- Aleš Hakl <ales_at_hakl.net>
- Dalibor Straka <dalibor.straka3_at_gmail.com>
- Martin Vidner <martin_at_vidner.net>
- Ondra Šimeček <ondrasek.simecek_at_gmail.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Dinamarquês
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Dennis Jakobsen <dennis.jakobsen_at_gmail.com>
- Jonas <jonas.den.smarte_at_gmail.com>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Holandês
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Niko Strijbol <strijbol.niko_at_gmail.com>
Inglês (Reino Unido)
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Francisco Rocha <j.francisco.o.rocha_at_zoho.com>
- Marc Delisle <marc_at_infomarc.info>
- Marek Tomaštík <tomastik.m_at_gmail.com>
Esperanto
- Eliovir <eliovir_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
Estoniano
- Kristjan Räts <kristjanrats_at_gmail.com>
Finlandês
- Juha Remes <jremes_at_outlook.com>
- Lari Oesch <lari_at_oesch.me>
Francês
- Marc Delisle <marc_at_infomarc.info>
Frísio
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galego
- Xosé Calvo <xosecalvo_at_gmail.com>
Alemão
- Julian Ladisch <github.com-t3if_at_ladisch.de>
- Jan Erik Zassenhaus <jan.zassenhaus_at_jgerman.de>
- Lasse Goericke <lasse_at_mydom.de>
- Matthias Bluthardt <matthias_at_bluthardt.org>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- <pma_at_sebastianmendel.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Grego
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Hebreu
- Moshe Harush <mmh15_at_windowslive.com>
- Yaron Shahrabani <sh.yaron_at_gmail.com>
- Eyal Visoker <visokereyal_at_gmail.com>
Hindi
- Atul Pratap Singh <atulpratapsingh05_at_gmail.com>
- Yogeshwar <charanyogeshwar_at_gmail.com>
- Deven Bansod <devenbansod.bits_at_gmail.com>
- Kushagra Pandey <kushagra4296_at_gmail.com>
- Nisarg Jhaveri <nisargjhaveri_at_gmail.com>
- Roohan Kazi <roohan_cena_at_yahoo.co.in>
- Yugal Pantola <yug.scorpio_at_gmail.com>
Húngaro
- Akos Eros <erosakos02_at_gmail.com>
- Dániel Tóth <leedermeister_at_gmail.com>
- Szász Attila <undernetangel_at_gmail.com>
- Balázs Úr <urbalazs_at_gmail.com>
Indonésio
- Deky Arifianto <Deky40_at_gmail.com>
- Andika Triwidada <andika_at_gmail.com>
- Dadan Setia <da2n_s_at_yahoo.co.id>
- Dadan Setia <dadan.setia_at_gmail.com>
- Yohanes Edwin <edwin_at_yohanesedwin.com>
- Fadhiil Rachman <fadhiilrachman_at_gmail.com>
- Benny <tarzq28_at_gmail.com>
- Tommy Surbakti <tommy_at_surbakti.net>
- Zufar Fathi Suhardi <zufar.bogor_at_gmail.com>
Interlíngua
- Giovanni Sora <g.sora_at_tiscali.it>
Italiano
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
Japonês
- k725 <alexalex.kobayashi_at_gmail.com>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
- Masahiko HISAKAWA <orzkun_at_ageage.jp>
- worldwideskier <worldwideskier_at_yahoo.co.jp>
Canarim
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Shameem Ahmed A Mulla <shameem.sam_at_gmail.com>
Coreano
- Bumsoo Kim <bskim45_at_gmail.com>
- Kyeong Su Shin <cdac1234_at_gmail.com>
- Dongyoung Kim <dckyoung_at_gmail.com>
- Myung-han Yu <greatymh_at_gmail.com>
- JongDeok <human.zion_at_gmail.com>
- Yong Kim <kim_at_nhn.com>
- 이경준 <kyungjun2_at_gmail.com>
- Seongki Shin <skshin_at_gmail.com>
- Yoon Bum-Jong <virusyoon_at_gmail.com>
- Koo Youngmin <youngminz.kr_at_gmail.com>
Curdo Sorâni
- Alan Hilal <alan.hilal94_at_gmail.com>
- Aso Naderi <aso.naderi_at_gmail.com>
- muhammad <esy_vb_at_yahoo.com>
- Zrng Abdulla <zhyarabdulla94_at_gmail.com>
Letonês
- Latvian TV <dnighttv_at_gmail.com>
- Edgars Neimanis <edgarsneims5092_at_inbox.lv>
- Ukko <perkontevs_at_gmail.com>
Limburguês
- Robin van der Vliet <info_at_robinvandervliet.nl>
Lituânio
- Vytautas Motuzas <v.motuzas_at_gmail.com>
Malaio
- Amir Hamzah <amir.overlord666_at_gmail.com>
- diprofinfiniti <anonynuine-999_at_yahoo.com>
Nepalês
- Nabin Ghimire <nnabinn_at_hotmail.com>
Norueguês Bokmál
- Børge Holm-Wennberg <borge947_at_gmail.com>
- Tor Stokkan <danorse_at_gmail.com>
- Espen Frøyshov <efroys_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
- Christoffer Haugom <ph3n1x.nobody_at_gmail.com>
- Sebastian <sebastian_at_sgundersen.com>
- Tomas <tomas_at_tomasruud.com>
Pérsa
- ashkan shirian <ashkan.shirian_at_gmail.com>
- HM <goodlinuxuser_at_chmail.ir>
Polonês
- Andrzej <andrzej_at_kynu.pl>
- Przemo <info_at_opsbielany.waw.pl>
- Krystian Biesaga <krystian4842_at_gmail.com>
- Maciej Gryniuk <maciejka45_at_gmail.com>
- Michał VonFlynee <vonflynee_at_gmail.com>
Português
- Alexandre Badalo <alexandre.badalo_at_sapo.pt>
- João Rodrigues <geral_at_jonilive.com>
- Pedro Ribeiro <p.m42.ribeiro_at_gmail.com>
- Sandro Amaral <sandro123iv_at_gmail.com>
Português (Brasil)
- Alex Rohleder <alexrohleder96_at_outlook.com>
- bruno mendax <brunomendax_at_gmail.com>
- Danilo GUia <danilo.eng_at_globomail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Douglas Eccker <douglaseccker_at_hotmail.com>
- Ed Jr <edjacobjunior_at_gmail.com>
- Guilherme Souza Silva <g.szsilva_at_gmail.com>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Junior Zancan <jrzancan_at_hotmail.com>
- Luis <luis.eduardo.braschi_at_outlook.com>
- Marcos Algeri <malgeri_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Renato Rodrigues de Lima Júnio <renatomdd_at_yahoo.com.br>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Victor Laureano <victor.laureano_at_gmail.com>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Washington Bruno Rodrigues Cav <washingtonbruno_at_msn.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Punjabi
- Robin van der Vliet <info_at_robinvandervliet.nl>
Romeno
- Alex <amihaita_at_yahoo.com>
- Costel Cocerhan <costa1988sv_at_gmail.com>
- Ion Adrian-Ionut <john_at_panevo.ro>
- Raul Molnar <molnar.raul_at_wservices.eu>
- Usuário Excluído <noreply_at_weblate.org>
- Stefan Murariu <stefan.murariu_at_yahoo.com>
Russo
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
- <ddrmoscow_at_gmail.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Хомутов Иван Сергеевич <khomutov.ivan_at_mail.ru>
- Alexey Rubinov <orion1979_at_yandex.ru>
- Олег Карпов <salvadoporjc_at_gmail.com>
- Egorov Artyom <unlucky_at_inbox.ru>
Sérvio
- Smart Kid <kidsmart33_at_gmail.com>
Cingalês
- Madhura Jayaratne <madhura.cj_at_gmail.com>
Eslováquio
- Martin Lacina <martin_at_whistler.sk>
- Patrik Kollmann <parkourpotex_at_gmail.com>
- Jozef Pistej <pistej2_at_gmail.com>
Eslovênio
- Domen <mitenem_at_outlook.com>
Espanhol
- Daniel Hinostroza, MD <phpmyadmin_at_cerebroperiferico.com>
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Luis Ruiz <luisan00_at_hotmail.com>
- Macofe <macofe.languagetool_at_gmail.com>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Rodrigo A. <ra4_at_openmailbox.org>
- FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Sueco
- Anders Jonsson <anders.jonsson_at_norsjovallen.se>
Tâmil
- கணேஷ் குமார் <GANESHTHEONE_at_gmail.com>
- Achchuthan Yogarajah <achch1990_at_gmail.com>
- Rifthy Ahmed <rifthy456_at_gmail.com>
Tailandês
- <nontawat39_at_gmail.com>
- Somthanat W. <somthanat_at_gmail.com>
Turco
- Burak Yavuz <hitowerdigit_at_hotmail.com>
Ucraniano
- Сергій Педько <nitrotoll_at_gmail.com>
- Igor <vmta_at_yahoo.com>
- Vitaliy Perekupka <vperekupka_at_gmail.com>
Vietnamita
- Bao Phan <baophan94_at_icloud.com>
- Xuan Hung <mr.hungdx_at_gmail.com>
- Bao trinh minh <trinhminhbao_at_gmail.com>
Flamengo Ocidental
- Robin van der Vliet <info_at_robinvandervliet.nl>
Tradutores da documentação¶
As pessoas a seguir contribuíram com a tradução da documentação do phpMyAdmin:
Albanês
- Arben Çokaj <acokaj_at_shkoder.net>
Árabe
- Ahmed El Azzabi <ahmedtek1993_at_gmail.com>
- Omar Essam <omar_2412_at_live.com>
Armênio
- Andrey Aleksanyants <aaleksanyants_at_yahoo.com>
Azeri
- Mircəlal <01youknowme_at_gmail.com>
- Sevdimali İsa <sevdimaliisayev_at_mail.ru>
Catalão
- josep constanti <jconstanti_at_yahoo.es>
- Joan Montané <joan_at_montane.cat>
- Xavier Navarro <xvnavarro_at_gmail.com>
Chinês (China)
- Vincent Lau <3092849_at_qq.com>
- 罗攀登 <6375lpd_at_gmail.com>
- disorderman <disorderman_at_qq.com>
- ITXiaoPang <djh1017555_at_126.com>
- tunnel213 <tunnel213_at_aliyun.com>
- Terry Weng <wengshiyu_at_gmail.com>
- whh <whhlcj_at_126.com>
Chinês (Taiwan)
- Chien Wei Lin <cwlin0416_at_gmail.com>
- Peter Dave Hello <xs910203_at_gmail.com>
Tcheco
- Aleš Hakl <ales_at_hakl.net>
- Michal Čihař <michal_at_cihar.com>
- Jan Palider <palider_at_seznam.cz>
- Petr Kateřiňák <petr.katerinak_at_gmail.com>
Dinamarquês
- Aputsiaĸ Niels Janussen <aj_at_isit.gl>
- Claus Svalekjaer <just.my.smtp.server_at_gmail.com>
Holandês
- Voogt <a.voogt_at_hccnet.nl>
- dingo thirteen <dingo13_at_gmail.com>
- Dries Verschuere <dries.verschuere_at_outlook.com>
- Robin van der Vliet <info_at_robinvandervliet.nl>
- Stefan Koolen <nast3zz_at_gmail.com>
- Ray Borggreve <ray_at_datahuis.net>
- Dieter Adriaenssens <ruleant_at_users.sourceforge.net>
- Tom Hofman <tom.hofman_at_gmail.com>
Estoniano
- Kristjan Räts <kristjanrats_at_gmail.com>
Finlandês
- Juha <jremes_at_outlook.com>
Francês
- Cédric Corazza <cedric.corazza_at_wanadoo.fr>
- Étienne Gilli <etienne.gilli_at_gmail.com>
- Marc Delisle <marc_at_infomarc.info>
- Donavan_Martin <mart.donavan_at_hotmail.com>
Frísio
- Robin van der Vliet <info_at_robinvandervliet.nl>
Galego
- Xosé Calvo <xosecalvo_at_gmail.com>
Alemão
- Daniel <d.gnauk89_at_googlemail.com>
- JH M <janhenrikm_at_yahoo.de>
- Lasse Goericke <lasse_at_mydom.de>
- Michael Koch <michael.koch_at_enough.de>
- Ann + J.M. <phpMyAdmin_at_ZweiSteinSoft.de>
- Niemand Jedermann <predatorix_at_web.de>
- Phillip Rohmberger <rohmberger_at_hotmail.de>
- Hauke Henningsen <sqrt_at_entless.org>
Grego
- Παναγιώτης Παπάζογλου <papaz_p_at_yahoo.com>
Húngaro
- Balázs Úr <urbalazs_at_gmail.com>
Italiano
- Francesco Saverio Giacobazzi <francesco.giacobazzi_at_ferrania.it>
- Marco Pozzato <ironpotts_at_gmail.com>
- Stefano Martinelli <stefano.ste.martinelli_at_gmail.com>
- TWS <tablettws_at_gmail.com>
Japonês
- Eshin Kunishima <ek_at_luna.miko.im>
- Hiroshi Chiyokawa <hiroshi.chiyokawa_at_gmail.com>
Lituânio
- Jur Kis <atvejis_at_gmail.com>
- Dovydas <dovy.buz_at_gmail.com>
Norueguês Bokmál
- Tor Stokkan <danorse_at_gmail.com>
- Kurt Eilertsen <kurt_at_kheds.com>
Português (Brasil)
- Alexandre Moretti <alemoretti2010_at_hotmail.com>
- Douglas Rafael Morais Kollar <douglas.kollar_at_pg.df.gov.br>
- Guilherme Seibt <gui_at_webseibt.net>
- Helder Santana <helder.bs.santana_at_gmail.com>
- Michal Čihař <michal_at_cihar.com>
- Michel Souza <michel.ekio_at_gmail.com>
- Danilo Azevedo <mrdaniloazevedo_at_gmail.com>
- Thiago Casotti <thiago.casotti_at_uol.com.br>
- Vinícius Araújo <vinipitta_at_gmail.com>
- Yan Gabriel <yansilvagabriel_at_gmail.com>
Eslováquio
- Martin Lacina <martin_at_whistler.sk>
- Michal Čihař <michal_at_cihar.com>
- Jozef Pistej <pistej2_at_gmail.com>
Eslovênio
- Domen <mitenem_at_outlook.com>
Espanhol
- Luis García Sevillano <floss.dev_at_gmail.com>
- Franco <fulanodetal.github1_at_openaliasbox.org>
- Matías Bellone <matiasbellone+weblate_at_gmail.com>
- Ronnie Simon <ronniesimonf_at_gmail.com>
Turco
- Burak Yavuz <hitowerdigit_at_hotmail.com>
Créditos Originais da Versão 2.1.0¶
Este trabalho é baseado no projeto Webadmin-MySQL de Peter Kuppelwieser’s. Foi a idéia dele criar uma interface baseada na web para MySQL usando o PHP3. Embora eu não tenha usado nada de seu código-fonte, há alguns conceitos que eu peguei emprestado dele. O phpMyAdmin foi criado por que Peter me disse que ele não iria mais desenvolver sua (ótima) ferramenta.
Os agradecimentos vão para
- Amalesh Kempf <ak-lsml_at_living-source.com> que contribuiu com o código de verificação quando eleminar uma tabela ou banco de dados. Ele também sugeriu que você fosse capaz de especificar a chave primária no tbl_create.php3. Para a versão 1.1.1 ele contribuiu com o conjunto ldi_*.php3 (importar arquivos texto) assim como um relatório de bugs. Além de várias melhorias menores.
- Jan Legenhausen <jan_at_nrw.net>: ele criou muitas das mudanças que foram apresentadas na 1.3.0 (incluindo algumas bem significantes como autenticação). Para a 1.4.1 ele melhorou a função de despejo de tabela. Além de conserto de bugs e ajuda.
- Marc Delisle <delislma_at_collegesherbrooke.qc.ca> tornou o phpMyAdmin independente de linguagem transportando as strings para um arquivo separado. Ele também contribuiu com a tradução do francês.
- Alenxandr Bravo <abravo_at_hq.admiral.ru> que contribuiu com o tbl_select.php3, uma função para exibir somente algumas colunas de uma tabela.
- Chris Jackson <chrisj_at_ctel.net> adicionou o suporte para funções MySQL no tbl_change.php3. Ele também adicionou a função “Query por exemplo” na 2.0.
- Dave Walton <walton_at_nordicdms.com> adicionou o suporte para múltiplos servidores e é um contribuidor regular para conserto de bugs.
- Gabriel Ash <ga244_at_is8.nyu.edu> contribuiu com as funções de acesso aleatório para a 2.0.6.
As pessoas a seguir contribuiram com mudanças menores, melhorias, conserto de bugs ou suporte a uma nova linguagem:
Jim Kraai, Jordi Bruguera, Miquel Obrador, Geert Lund, Thomas Kleemann, Alexander Leidinger, Kiko Albiol, Daniel C. Chao, Pavel Piankov, Sascha Kettler, Joe Pruett, Renato Lins, Mark Kronsbein, Jannis Hermanns, G. Wieggers.
E obrigado a todos os demais que me enviaram emails com sugestões, relatórios de bugs ou apenas algum feedback.
Glossário¶
Da Wikipédia, a enciclopédia livre
- .htaccess
o nome padrão do arquivo de configuração de nível de diretório do Apache.
Ver também
- ACL
- Access Control List
- Blowfish
a keyed, symmetric block cipher, designed in 1993 by Bruce Schneier.
Ver também
- Navegador
uma aplicação de software que permite o usuário exibir e interagir com texto, imagens, e outras informações tipicamente localizados em uma página web em um site na World Wide Web.
Ver também
- bzip2
a free software/open-source data compression algorithm and program developed by Julian Seward.
Ver também
- CGI
Common Gateway Interface is an important World Wide Web technology that enables a client web browser to request data from a program executed on the web server.
Ver também
- Log de mudanças
um log ou gravação de mudanças feitas em um projeto.
Ver também
- Cliente
um sistema de computador que acessa um serviço (remoto) ou qualquer outro computador através de algum tipo de rede.
- campo
a set of data values of a particularly simple type, one for each row of the table.
Ver também
um pacote de informação enviado por um servidor para o navegador da World Wide Web e então enviado de volta pelo navegador cada vez que ele acessa aquele servidor.
- CSV
Comma-separated values
Ver também
- BD
- look at Database
- Banco de dados
uma coleção de dados organizada.
Ver também
- Engine
- procure em Storage Engines
- PHP extension
um módulo PHP que estende o PHP com funcionalidade adicional.
Ver também
- FAQ
Frequently Asked Questions is a list of commonly asked question and their answers.
Ver também
- Campo
uma parte de campos/dados dividida.
- Foreign key
a column or group of columns in a database row that points to a key column or group of columns forming a key of another database row in some (usually different) table.
Ver também
- GD
Biblioteca Gráfica criada por Thomas Boutell e outros para manipulação dinâmica de imagens.
Ver também
- GD2
- procure em GD
- GZip
GZip is short for GNU zip, a GNU free software file compression program.
Ver também
- host
qualquer máquina conectada a uma rede de computador, um nó que tem um nome de hospedeiro.
Ver também
- hostname
the unique name by which a network-attached device is known on a network.
Ver também
- HTTP
Hypertext Transfer Protocol is the primary method used to transfer or convey information on the World Wide Web.
- HTTPS
uma conexão HTTP com medidas adicionais de segurança.
Ver também
- IEC
- International Electrotechnical Commission (Comissão Internacional Eletrotécnica)
- IIS
Internet Information Services is a set of internet-based services for servers using Microsoft Windows.
- Índice
uma função que permite acesso rápido aos registros em uma tabela.
Ver também
- IP
“Internet Protocol” is a data-oriented protocol used by source and destination hosts for communicating data across a packet-switched internetwork.
Ver também
- Endereço IP
um número único que os aparelhos usam a fim de identificar e comunicar uns com os outros em uma rede usando o padrão do Internet Protocol.
Ver também
- IPv6
IPv6 (Internet Protocol version 6) is the latest revision of the Internet Protocol (IP), designed to deal with the long-anticipated problem of its predecessor IPv4 running out of addresses.
Ver também
- ISAPI
Internet Server Application Programming Interface (Interface de Programação de Aplicações para Servidores de Internet) é a API dos Internet Information Services (IIS - Serviços de Informação de Internet).
- ISP
An Internet service provider is a business or organization that offers users access to the Internet and related services.
- ISO
International Standards Organization
Ver também
- JPEG
um método padrão muito comumente usado de compressão com perdas de imagens fotográficas.
- JPG
- look at JPEG
- Chave
- look at Index
- LATEX
a document preparation system for the TeX typesetting program.
Ver também
- Mac
Apple Macintosh is a line of personal computers designed, developed, manufactured, and marketed by Apple Inc.
Ver também
- macOS
o sistema operacional que está incluído em todos os computadores Apple Macintosh sendo vendidos atualmente no mercado profissional e pessoal.
Ver também
- mbstring
As funções mbstring do PHP fornecem suporte para idiomas representados por conjuntos de caracteres de vários bytes, em especial o UTF-8.
Se você tiver problemas ao instalar esta extensão, verifique o 1.20 Eu recebo um erro sobre extensões mysqli e mysql faltando., ele fornece dicas úteis.
Ver também
- Tipo de mídia
Um tipo de mídia (anteriormente conhecido como tipo MIME) é um identificador de duas partes para formatos de arquivo e para formatos de conteúdo transmitidos na Internet.
- MIME
Multipurpose Internet Mail Extensions (Extensões de Correio de Internet Multipropósito) é um padrão da internet para o formato de e-mail.
Ver também
- módulo
modular extension for the Apache HTTP Server httpd.
Ver também
- mod_proxy_fcgi
an Apache module implementing a Fast CGI interface; PHP can be run as a CGI module, FastCGI, or directly as an Apache module.
Ver também
- MySQL
um Database Management System (DBMS - Sistema de Gerenciamento de Bancos de Dados) SQL (Structured Query Language - Linguagem de Pesquisa Estruturada) de multi-threads e multi-usuário.
Ver também
- MySQLi
a extensão melhorada do MySQL do cliente PHP.
Ver também
Ver também
- mysql
a extensão MySQL do cliente PHP.
Ver também
- OpenDocument
an open standard for office documents.
Ver também
- OS X
look at macOS.
Ver também
Portable Document Format is a file format developed by Adobe Systems for representing two-dimensional documents in a device-independent and resolution-independent format.
Ver também
- PEAR
a extensão PHP e o repositório de aplicações.
Ver também
Ver também
- PCRE
Perl-Compatible Regular Expressions is the Perl-compatible regular expression functions for PHP
Ver também
- PHP
encurtamento para “PHP: Hypertext Preprocessor” (Pré-processador de Hipertexto), é uma linguagem de programação refletiva de código-aberto, usada principalmente para desenvolver aplicações de servidor e conteúdo dinâmico da web, e mais recentemente, um alcance maior de aplicações de software.
Ver também
- porta
uma conexão pela qual dados são enviados e recebidos.
- chave primária
A primary key is an index over one or more fields in a table with unique values for every single row in this table. Every table should have a primary key for easier accessing/identifying data in this table. There can only be one primary key per table and it is named always PRIMARY. In fact, a primary key is just an unique key with the name PRIMARY. If no primary key is defined MySQL will use first unique key as primary key if there is one.
Você pode criar a chave primária ao criar a tabela (no phpMyAdmin basta selecionar as opções de chave primária para cada campo que você deseja que faça parte da chave primária).
Você também pode adicionar uma chave primária a uma tabela existente com ALTER TABLE ou CREATE INDEX (no phpMyAdmin basta clicar em ‘adicionar índice’ na página de estrutura da tabela, abaixo dos campos listados).
- RFC
Documentos Request for Comments (RFC - Pedido por Comentários) são uma série de memorandos contendo novas pesquisas, inovações e metodologias aplicáveis às tecnologias da Internet.
Ver também
- RFC 1952
especificação de formato de arquivo GZip versão 4.3
Ver também
- Registro (valor, tupla)
representa um item de dados único e implicitamente estruturado em uma tabela.
- Servidor
um sistema de computadaor que fornece serviços para outros sistemas computacionais através de uma rede.
Ver também
- Sodium
The Sodium PHP extension.
Ver também
- Mecanismos de Armazenamento
O MySQL pode usar vários formatos diferentes para armazenar dados no disco, estes são chamados de mecanismos de armazenamento ou tipos de tabela. O phpMyAdmin permite que um usuário altere seu mecanismo de armazenamento para uma tabela específica através da aba de operações.
Tipos de tabela comuns são o InnoDB e o MyISAM, embora existam muitos outros que podem ser desejáveis em algumas situações.
Ver também
- socket
um formulário de comunicação entre processos.
- SSL
Secure Sockets Layer, (now superseded by TLS) is a cryptographic protocol which provides secure communication on the Internet.
- Procedimento armazenado
uma subrotina disponível para aplicações que acessam um sistema de banco da dados relacional
- SQL
Structured Query Language (Linguagem de Pesquisa Estruturada)
Ver também
- tabela
a set of data elements (cells) that is organized, defined and stored as horizontal rows and vertical columns where each item can be uniquely identified by a label or key or by its position in relation to other items.
- tar
a type of archive file format, from “Tape Archive”.
Ver também
- TCP
Transmission Control Protocol (Protocolo de Controle de Transmissão) é um dos protocolos núcleo da suíte de protocolos da Internet.
- TCPDF
biblioteca PHP para gerar arquivos PDF.
Ver também
Ver também
- gatilho
um código de procedimentos que é automaticamente executado em resposta a certos eventos em uma tabela particular ou view em um banco de dados
- chave única
- A unique key is an index over one or more fields in a table which has a unique value for each row. The first unique key will be treated as primary key if there is no primary key defined.
- URL
Uniform Resource Locator (Localizador Uniforme de Recursos) é uma sequência de caracteres, em conforme com um formato padronizado, que é usado para se referir a recursos, como documentos e imagens na Internet, pela sua localização.
Ver também
- Servidor web
A computer (program) that is responsible for accepting HTTP requests from clients and serving them web pages.
Ver também
- XML
Extensible Markup Language is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data.
Ver também
- ZIP
um formato popular de compressão e arquivamento de dados.
Ver também
- Zlib
an open-source, cross-platform data compression library by Jean-loup Gailly and Mark Adler.
Ver também
- Content Security Policy
The HTTP Content-Security-Policy response header allows web site administrators to control resources the user agent is allowed to load for a given page.
Ver também