gerenciando mysql com o phpmyadmin

15
Gerenciando MySQL com o phpMyAdmin: Instalação 11 de out de 2008, em Programas , Tutoriais Tags: administração , banco de dados , mysql , php , phpmyadmin , programas Visualizado 6387 vezes, 27 só hoje Por Hugo Cisneiros (Eitch) No primeiro de uma série de tutoriais sobre o phpMyAdmin, vamos aprender aqui como instalar esta poderosa ferramenta e como configurá-la corretamente para termos todos os recursos disponíveis e utilizá-la depois. 1. Introdução O MySQL é um banco de dados popular que é bastante utilizado em aplicações Web. Por exemplo, praticamente todo sistema de gerenciamento de conteúdo de portais tem suporte MySQL, as empresas de web hosting também oferecem sempre, além de ser fácil instalar e começar a usar logo de cara. O banco de dados é software livre, o que indica que você pode baixar e usar à vontade, sem precisar pagar ou obter algum tipo de licença. Mas uma vez que o banco de dados foi instalado, muita gente sente falta de um gerenciador para ele, algo que possa criar ou visualizar as tabelas, executar comandos SQL, mudar configurações de usuários, fazer backups do conteúdo e tudo mais. Uma ótima solução para fazer isto é usar o phpMyAdmin , uma poderosa ferramenta de gerenciamento MySQL feita inteiramente em PHP , o que significa que funciona em ambiente Web e por isso, na maioria dos sistemas operacionais e navegadores. Segundo a documentação do programa, estas são as tarefas que o phpMyAdmin pode fazer atualmente:

Upload: jotapinto22

Post on 25-Jul-2015

78 views

Category:

Documents


4 download

DESCRIPTION

Gerenciando MySQL Com o PhpMyAdmin

TRANSCRIPT

Gerenciando MySQL com o phpMyAdmin: Instalação11 de out de 2008, em Programas, Tutoriais Tags: administração, banco de dados, mysql, php, phpmyadmin, programas Visualizado 6387 vezes, 27 só hoje Por Hugo Cisneiros (Eitch)

No primeiro de uma série de tutoriais sobre o phpMyAdmin, vamos aprender aqui como instalar esta poderosa ferramenta e como configurá-la corretamente para termos todos os recursos disponíveis e utilizá-la depois.

1. Introdução

O MySQL é um banco de dados popular que é bastante utilizado em aplicações Web. Por exemplo, praticamente todo sistema de gerenciamento de conteúdo de portais tem suporte MySQL, as empresas de web hosting também oferecem sempre, além de ser fácil instalar e começar a usar logo de cara. O banco de dados é software livre, o que indica que você pode baixar e usar à vontade, sem precisar pagar ou obter algum tipo de licença.

Mas uma vez que o banco de dados foi instalado, muita gente sente falta de um gerenciador para ele, algo que possa criar ou visualizar as tabelas, executar comandos SQL, mudar configurações de usuários, fazer backups do conteúdo e tudo mais. Uma ótima solução para fazer isto é usar o phpMyAdmin, uma poderosa ferramenta de gerenciamento MySQL feita inteiramente em PHP, o que significa que funciona em ambiente Web e por isso, na maioria dos sistemas operacionais e navegadores.

Segundo a documentação do programa, estas são as tarefas que o phpMyAdmin pode fazer atualmente:

Visualizar, remover, criar, copiar, renomear e alterar bancos de dados, tabelas, campos e índices.Manutenção do servidor, bancos de dados e tabelas, com sugestões para a configuração do servidor.

Executar, editar e guardar qualquer comando SQL, mesmo em série.

Carregar arquivos de texto em tabelas.

Criar ou ler dumps de tabelas e bancos de dados, com suporte à arquivos GZip, Bzip2, Zip (quando habilitados no PHP).

Exportar dados para vários formatos: CSV, XML, PDF, OpenDocument Text e Spreadsheet (ISO/IEC 26300), Word, Excel e LATEX.

Administrar múltiplos servidores de um único local/sistema.

Gerenciar usuários e privilégios do MySQL.

Verificar integridade referencial em tabelas MyISAM.

Usar Query-by-example (QBE) - Consulta por exemplo - para criar conslutas complexas conectando automaticamente as tabelas necessárias.

Criar gráficos PDF do layout dos bancos de dados.

Procurar em um banco de dados inteiro ou em alguma parte específica.

Transformar dados armazenados em qualquer formato usando funções pré-definidas.

Suporte ao tipo de tabelas InnoDB e chaves estrangeiras (foreign keys).

Suporte ao mysqli, uma extensão MySQL aprimorada.

55 idiomas disponíveis

Versões Disponíveis

No momento deste tutorial, existem duas versões do phpMyAdmin disponíveis:

2.11.x - Amplamente utilizado, necessário PHP 4.2 ou superior e MySQL 3.23.32 ou superior.

3.x - Recentemente lançada, necessário PHP 5.2 ou superior e MySQL 5.0.12 ou superior.

Como a versão 3.x, desenvolvida por muito tempo, está agora estável e totalmente funcional, é recomendado que se utilize ela em novas instalações. Lembre-se de ter instalado as versões necessárias do PHP e MySQL para isso.

Em outros casos, a versão da série 2.x pode ser a melhor escolha para sistemas mais antigos. Lembre-se que ao usar esta versão, pode ser que você não encontre algum recurso que poderia estar na série 3.x.

Para baixar, basta entrar na página principal do phpMyAdmin e clicar nos links de download no canto superior esquerdo (Quick Downloads), você será redirecionado para o SourceForge e o download será feito do mirror mais próximo. Neste tutorial, baixei em formato .zip, mesmo preferindo o .bzip2.

2. Instalação

Tanto no Windows quanto no Linux, a instalação do phpMyAdmin é bem tranqüila. Neste tutorial estaremos usando a nova versão - 3.x - como referência. Entretanto, as instruções aqui também são válidas para a versão 2.11.x, que tem o processo de instalação bastante parecido.

Comece acessando o site do phpMyAdmin e obtendo o arquivo do programa. Recomendo pegar a versão contendo todas os idiomas (all languages) e codificação UTF-8. Sendo assim, pegue um dos dois arquivos (podendo variar a versão):

phpMyAdmin-3.0.0-all-languages.zip phpMyAdmin-2.11.9.2-all-languages-utf-8-only.zip

A versão all-languages contém a tradução da interface para 55 idiomas e o idioma pode ser escolhido na configuração ou na hora que o usuário for usar o programa. A versão UTF-8 (a 3.0 já é totalmente utf-8 por padrão) permite que acentos e outros caracteres não-comuns de outras línguas sejam usados de forma unificada e suportada pelo navegador, sendo sempre uma boa opção.

Também, é recomendado você ter o seguinte disponível:

Extensão PHP mcrypt, para criptografia mais rápida/robusta; Extensão PHP zip, bzip2, gzip, para compactação dos arquivos de

importação/exportação;

Extensão PHP gd2, para visualização de thumbnails de imagens.

Descompacte o arquivo baixado no diretório onde as páginas estão sendo servidas. No Linux, por exemplo, podemos descompactar no /var/www (Debian ou derivados) ou /var/www/html:

$ cd /var/www$ unzip ~/download/phpMyAdmin-3.0.0-all-languages.zip

No Windows, basta descompactar no diretório onde está configurado o htdocs do Apache. Por exemplo, C:\Apache2.2\htdocs.

Será criado um diretório do phpMyAdmin (o nome varia de acordo com a versão) com o conteúdo do programa. Para facilitar as coisas aqui, vou renomear o nome deste diretório para apenas phpmyadmin (tudo em minúsculo). Dica: no Linux criei um link simbólico.

O sistema agora já (!) está instalado. Se você tem o Apache + PHP configurados corretamente e funcionando, acesse:

http://localhost/phpmyadmin/

Nota: Substitua ‘localhost‘ pelo endereço IP ou nome do servidor que você instalou o phpMyAdmin. Nesse caso instalei na minha máquina local.

Você será presenteado com uma tela de erro, dizendo que o sistema não conseguiu acessar o banco de dados e que provavelmente você não criou uma configuração. Não é que ele está certo?

3. Configuração

Existem duas formas de se configurar o phpMyAdmin, editando manualmente a configuração ou utilizando um script de setup online que cria a configuração para você. Na minha opinião, editar o arquivo manualmente é mais fácil e rápido, por isso vamos começar dessa forma.

Abra o arquivo config.sample.inc.php, comece localizando a linha:

$cfg['blowfish_secret'] = '';

E colocando um valor qualquer e aleatório nesta variável, assim por exemplo:

$cfg['blowfish_secret'] = 'kldsf8235h2fp0sfj3othz4bhqn4209bus';

Essa é uma string aleatória que vai ser usada na hora de gerar a criptografia de algumas senhas.

Agora identifique as outras linhas:

$i++;$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['host'] = 'localhost';$cfg['Servers'][$i]['connect_type'] = 'tcp';$cfg['Servers'][$i]['compress'] = false;$cfg['Servers'][$i]['extension'] = 'mysql';

Pode ser necessário mudar o valor do host para o IP do servidor. Mas como aqui estamos usando a própria máquina local, localhost serve. A configuração acima nos diz para o phpMyAdmin utilizar o sistema de autenticação cookie (usuário e senha são pedidos via formulário na página principal e lembrados até que o navegador seja fechado ou um tempo sem usar se passe), o servidor de banco de dados que será usado está em localhost, conectando via TCP (pode ser socket também), sem usar compactação de páginas no servidor (se seu Apache/PHP tiver, o que é bem provável, ative com true) e a extensão PHP que será utilizada é a mysql (se você possuir a extensão mysqli ativada, use-a no lugar).

Opcional: Se você quiser adicionar mais servidores de bancos de dados, sendo possível o usuário escolher na hora de login, basta apenas colocar as linhas anteriores novamente, modificando seus dados para refletir o novo servidor. Por exemplo, logo depois da confguração anterior, coloco as linhas:

$i++;$cfg['Servers'][$i]['auth_type'] = 'cookie';$cfg['Servers'][$i]['host'] = 'mysql.dominio.com.br';$cfg['Servers'][$i]['connect_type'] = 'tcp';$cfg['Servers'][$i]['compress'] = true;$cfg['Servers'][$i]['extension'] = 'mysqli';

Desta forma além do banco de dados em localhost, poderei acessar também o banco de dados em mysql.dominio.com.br.

Depois de configurado esses parâmetros básicos, salve o arquivo como config.inc.php. Agora acesse novamente o endereço do phpMyAdmin no navegador:

http://localhost/phpmyadmin/

Login phpMyAdmin

Desta forma o phpMyAdmin já foi configurado. O aviso na imagem vermelha indica que a extensão mcrypt do PHP não está instalada e que é recomendado que você instale e ative-a (no caso de estar usarmos o método de autenticação cookie, que é o nosso caso), caso contrário, a ferramenta ficará mais lenta ou até mesmo não funcionar (máquinas de 64-bits). Se você seguiu as recomendações anteriormente, isso não deverá aparecer ;-)

Ao se logar (aqui me loguei como root), vemos a seguinte tela:

Tela Principal phpMyAdmin

A partir daí você já pode mexer na ferramenta como um todo, mas ainda há algumas coisas que podemos fazer para extender as funcionalidades do programa.

4. Extensão das funcionalidades

Além das funcionalidades básicas do phpMyAdmin - Criar usuários, tabelas, consultar, inserir, remover, importar, exportar, etc - é possível também extender a configuração para poder usar bookmarks, comentários, histórico de comandos SQL, geração de PDF dos dados, transformação de conteúdo, entre outros.

A razão por essas funcionalidades não estarem habilitadas por padrão é que elas necessitam de uma tabela própria no banco de dados, separado dos usuários. O processo consiste em criar um usuário especial do phpMyAdmin que será utilizado pela ferramenta transparentemente, habilitando assim as funcionalidades. Como isto pode ser muito útil, vamos aqui configurar!

4.1. Criando o usuário

Começamos criando um usuário chamado pma. Na própria ferramenta phpMyAdmin, depois de logado como root (administrador), selecione a aba Privilégios (Privileges).

Logo abaixo da tabela que será mostrada, clique em Adicionar novo usuário (Add new user).

Adicionar usuário no phpMyAdmin

Preencha com o nome do usuário, o local de onde ele vai se conectar (caso o phpMyAdmin esteja localizado em outro servidor sem ser o mesmo do banco de dados) e a senha. Marque também a opção Criar banco de dados com o mesmo nome e conceder todos os privilégios (Create database with same name and concede all privileges).

4.2. Criando o usuário via linha de comando

Caso queira usar a linha de comando e não o phpMyAdmin, no servidor, conecte-se ao banco de dados:

$ mysql -u root -pEnter password: <digite a senha>Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 37Server version: 5.0.51a-15-log (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Crie um banco de dados chamado pma:

mysql> CREATE DATABASE pma DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Depois crie o usuário chamado pma e dê todas as permissões do banco de dados pma:

mysql> GRANT ALL PRIVILEGES ON pma.* TO pma@localhost IDENTIFIED BY 'senha'

WITH GRANT OPTION;mysql> FLUSH PRIVILEGES;

Pronto. CTRL+D para sair da linha de comando do MySQL.

4.3. Importando as tabelas

Agora será necessário importar a estrutura de tabelas do phpMyAdmin. Para fazer isso via interface do phpMyAdmin, deslogue-se como root e logue-se com o usuário pma.

Em seguida, selecione no menu da esquerda o banco de dados pma. Depois clique na Aba Importar.

Abra o arquivo create_tables.sql dentro do diretório scripts onde você descompactou o phpMyAdmin e comente (colocando dois hífens e um espaço no começo da linha) as seguintes linhas:

-- CREATE DATABASE IF NOT EXISTS `phpmyadmin`--  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;-- USE phpmyadmin;

Depois salve o arquivo.

De volta à interface do phpMyAdmin, em Localização do arquivo texto (Location of the text file), selecione o arquivo create_tables.sql que você editou e salvou.

Clique em Importar, então a estrutura estará pronta para o uso do phpMyAdmin e agora só será preciso configurá-lo para saber disto.

4.4. Importando as tabelas via linha de comando

Para importar a estrutura de tabelas via linha de comando MySQL, vá ao diretório scripts dentro de onde você descompactou o phpMyAdmin, abra o arquivo create_tables.sql e comente (colocando dois hífens e um espaço no começo da linha) as seguintes linhas:

-- CREATE DATABASE IF NOT EXISTS `phpmyadmin`--  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;-- USE phpmyadmin;

Depois salve o arquivo. Então digite o comando:

$ mysql -u pma -p pma < create_tables.sqlPassword: <digite a senha do usuário pma>

E pronto, a estrutura estará pronta para o uso do phpMyAdmin e agora só será preciso configurá-lo para saber disto.

4.5. Configurando o phpMyAdmin para as novas funcionalidades

Será necessário agora informar ao phpMyAdmin sobre esse novo usuário e seu banco de dados. Para fazer isso, abra o arquivo config.inc.php dentro da raiz do phpMyAdmin e configure as linhas:

$cfg['Servers'][$i]['controluser'] = 'pma';$cfg['Servers'][$i]['controlpass'] = 'pmapass';

Estas e as linhas à seguir provavelmente estarão comentadas (com “// ” no começo da linha), será necessário descomentá-las, deixando exatamente como mostrado aqui.

Nestes parâmetros, controluser e controlpass, coloque os valores correspondentes ao usuário e senha criados anteriormente. O phpMyAdmin se conectará ao banco de dados com esse usuário quando necessitar usar as novas funcionalidades.

Em seguida, localize a linha:

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';

E modifique para:

$cfg['Servers'][$i]['pmadb'] = 'pma';

O parâmetro pmadb indica o nome do banco de dados que criamos, que no nosso caso é o pma.

Por último, descomente as linhas à seguir:

$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]['designer_coords'] = 'pma_designer_coords';

Elas correspondem aos nomes das tabelas dentro do banco de dados, mas não precisamos mudar seus valores porque usamos exatamente estes.

Salve o arquivo.

Nota: Da mesma forma que o phpMyAdmin suporta múltiplos servidores de bancos de dados, você poderá duplicar essas linhas e colocá-las abaixo da configuração de outro servidor para que este outro servidor tenha essas funcionalidades extendidas também.

Pronto! Agora o phpMyAdmin já pode utilizar todas as novas funcionalidades. Bom proveito! Agora quando você for usar o phpMyAdmin, poderá ver opções adicionais como a Aba Designer, Procurar Por Exemplos, Fazer comentários sobre os bancos de dados e tabelas em Operações, gerar PDF dos resultados de comandos SQL, entre outros.

5. Outros tipos de Autenticação

Além do método cookie, o mais recomendado por ser seguro e flexível, podemos usar outros tipos de autenticação também. Descrevo aqui alguns mais relevantes:

Modo HTTP: O usuário ao invés de ter uma página de login, recebe uma caixa de diálogo do próprio navegador perguntando o usuário e a senha. Caso os dados estejam corretos, o phpMyAdmin já vai para sua tela principal de operação. O modo HTTP é o mesmo usado nas autenticações HTTP via o arquivo htaccess.

Modo config: Não é pedido nenhuma senha para o usuário via navegador. O usuário e senha do banco de dados está configurado no arquivo config.inc.php. Use isto se você quer autenticar de outra forma, como utilizando o arquivo especial do Apache htaccess. Eu não recomendo muito.

Gostou?

 Imprimir esta página

Leia também:

Gerenciando MySQL com o phpMyAdmin: Usuários Trabalhando com PHP e MySQL: Uma Introdução

Limitando usuários com o PAM

Shell: Entrada e Saída

Backup Remoto

4 Comentários em “Gerenciando MySQL com o phpMyAdmin: Instalação”

1.

Hugo Cisneiros anuncia seu site de tutoriais, reformulado: Devin 15 de out de 2008 em 7:27 am

[...] Linux), novos Comentários de Distribuições Linux, Nova Introdução ao Linux, Utilizando o bash, Instalação do phpMyAdmin, entre muitos [...]

2.

Thiago 20 de jan de 2009 em 11:24 am

Instalei o PHPMyAdmin versão 3.1.2. Todos os bancos de dados que crio utilizo utf-8 como charset e utf8_general_ci como collation.

Acontece que, SE edito um determinado campo ou faço INSERTs ou UPLOADs pelo PHPMyAdmin me parece que ele armazena no formato ISO-8859-1. Nas páginas do PHPMyAdmin aparece tudo certinho, mas nas páginas da aplicação os caracteres ficam truncados.

Se crio um arquivo em PHP (salvando como UTF-8), faço a conexão com o BD e insiro com mysql_query() os dados são apresentados certinho nas páginas da aplicação e no PHPMyAdmin são apresentados como caracteres estranhos. O que será que pode ser? As páginas da aplicação são todas escritas em utf-8 e possuem o elemento META correspondente (http-equiv=”Content-Type” content=”text/html;charset=utf-8″).

Já tentei usar no config.inc.php do MyAdmin as seguintes variáveis (veja abaixo), mas não resolveu. Alguém teve problema parecido e descobriu o que é? Eu gostaria que ao editar no PHPMyAdmin os dados já ficassem armazenados corretamente para exibir na aplicação.

Adianto as configs do servidor MySQL:

SHOW VARIABLES LIKE ‘character_set%’;- character_set_client utf8- character_set_connection utf8- character_set_database utf8- character_set_filesystem binary- character_set_results utf8- character_set_server latin1- character_set_system utf8

SHOW VARIABLES LIKE ‘collation%’;- collation_connection utf8_general_ci- collation_database utf8_general_ci- collation_server latin1_swedish_ci

Configurações testadas no configf.inc.php do PHPMyAdmin:

$cfg['AllowAnywhereRecoding'] = true;$cfg['DefaultCharset'] = ‘utf-8′;$cfg['DefaultConnectionCollation'] = ‘utf8_general_ci’;$cfg['RecodingEngine'] = ‘auto’;$cfg['AvailableCharsets'] = array(‘utf-8′,‘iso-8859-1′);

3.

Hugo Cisneiros (Eitch) 20 de jan de 2009 em 11:32 am

@Thiago:

Eu posso dar um pequeno chute sobre isso: pode ser que o teu servidor esteja servindo as páginas em ISO-8859-1. Neste caso, para verificar, tente (só sei no Firefox) ver esta informação através do clique direito na página e na opção “View Page Info” (Ver informações da página). O campo “Encoding” (Codificação) tem que estar UTF-8 por exemplo.

Se não estiver, aí pode ser o problema. Recomendo então configurar o servidor para servir páginas UTF-8 ao invés de ISO-8859-1. No Apache, basta adicionar a seguinte linha em um arquivo .htaccess na raiz do phpMyAdmin:

AddDefaultCharset UTF-8

Pode ser que isso funcione. Nos comunique ;)

4.

Thiago 03 de abr de 2009 em 6:24 am

Pessoal, desculpe, esqueci de postar a solução.Quero agradecer também o Hugo, mas não era este o problema.

Resolvi o problema modificando minha classe de conexão ao banco no PHP incluindo isso:

mysql_query(”SET NAMES ‘utf8′”);mysql_set_charset(’utf8′,$conn);

Veja mais detalhes aqui:http://www.phpwact.org/php/i18n/utf-8/mysql

[]s