Sei sulla pagina 1di 11

Gerenciando MySQL com o phpMyAdmin: Instalao

11 de out de 2008, em Programas, Tutoriais Tags: administrao, banco de dados, mysql, php, phpmyadmin, programas Visualizado 6387 vezes, 27 s hoje Por Hugo Cisneiros (Eitch)

No primeiro de uma srie de tutoriais sobre o phpMyAdmin, vamos aprender aqui como instalar esta poderosa ferramenta e como configur-la corretamente para termos todos os recursos disponveis e utiliz-la depois.

1. Introduo
O MySQL um banco de dados popular que bastante utilizado em aplicaes Web. Por exemplo, praticamente todo sistema de gerenciamento de contedo de portais tem suporte MySQL, as empresas de web hosting tambm oferecem sempre, alm de ser fcil instalar e comear 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 licena. 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 configuraes de usurios, fazer backups do contedo e tudo mais. Uma tima soluo 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 documentao do programa, estas so as tarefas que o phpMyAdmin pode fazer atualmente:

Visualizar, remover, criar, copiar, renomear e alterar bancos de dados, tabelas, campos e ndices. Manuteno do servidor, bancos de dados e tabelas, com sugestes para a configurao do servidor. Executar, editar e guardar qualquer comando SQL, mesmo em srie. 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 vrios formatos: CSV, XML, PDF, OpenDocument Text e Spreadsheet (ISO/IEC 26300), Word, Excel e LATEX. Administrar mltiplos servidores de um nico local/sistema. Gerenciar usurios e privilgios do MySQL. Verificar integridade referencial em tabelas MyISAM. Usar Query-by-example (QBE) - Consulta por exemplo - para criar conslutas complexas conectando automaticamente as tabelas necessrias. Criar grficos PDF do layout dos bancos de dados.

Procurar em um banco de dados inteiro ou em alguma parte especfica. Transformar dados armazenados em qualquer formato usando funes prdefinidas. Suporte ao tipo de tabelas InnoDB e chaves estrangeiras (foreign keys). Suporte ao mysqli, uma extenso MySQL aprimorada. 55 idiomas disponveis

Verses Disponveis
No momento deste tutorial, existem duas verses do phpMyAdmin disponveis:

2.11.x - Amplamente utilizado, necessrio PHP 4.2 ou superior e MySQL 3.23.32 ou superior. 3.x - Recentemente lanada, necessrio PHP 5.2 ou superior e MySQL 5.0.12 ou superior.

Como a verso 3.x, desenvolvida por muito tempo, est agora estvel e totalmente funcional, recomendado que se utilize ela em novas instalaes. Lembre-se de ter instalado as verses necessrias do PHP e MySQL para isso. Em outros casos, a verso da srie 2.x pode ser a melhor escolha para sistemas mais antigos. Lembre-se que ao usar esta verso, pode ser que voc no encontre algum recurso que poderia estar na srie 3.x. Para baixar, basta entrar na pgina 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 prximo. Neste tutorial, baixei em formato .zip, mesmo preferindo o .bzip2.

2. Instalao
Tanto no Windows quanto no Linux, a instalao do phpMyAdmin bem tranqila. Neste tutorial estaremos usando a nova verso - 3.x - como referncia. Entretanto, as instrues aqui tambm so vlidas para a verso 2.11.x, que tem o processo de instalao bastante parecido. Comece acessando o site do phpMyAdmin e obtendo o arquivo do programa. Recomendo pegar a verso contendo todas os idiomas (all languages) e codificao UTF-8. Sendo assim, pegue um dos dois arquivos (podendo variar a verso):

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

A verso all-languages contm a traduo da interface para 55 idiomas e o idioma pode ser escolhido na configurao ou na hora que o usurio for usar o programa. A verso UTF-8 (a 3.0 j totalmente utf-8 por padro) permite que acentos e outros caracteres no-comuns de outras lnguas sejam usados de forma unificada e suportada pelo navegador, sendo sempre uma boa opo.

Tambm, recomendado voc ter o seguinte disponvel:


Extenso PHP mcrypt, para criptografia mais rpida/robusta; Extenso PHP zip, bzip2, gzip, para compactao dos arquivos de importao/exportao; Extenso PHP gd2, para visualizao de thumbnails de imagens.

Descompacte o arquivo baixado no diretrio onde as pginas esto 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 diretrio onde est configurado o htdocs do Apache. Por exemplo, C:\Apache2.2\htdocs. Ser criado um diretrio do phpMyAdmin (o nome varia de acordo com a verso) com o contedo do programa. Para facilitar as coisas aqui, vou renomear o nome deste diretrio para apenas phpmyadmin (tudo em minsculo). Dica: no Linux criei um link simblico. O sistema agora j (!) est instalado. Se voc tem o Apache + PHP configurados corretamente e funcionando, acesse: http://localhost/phpmyadmin/ Nota: Substitua localhost pelo endereo IP ou nome do servidor que voc instalou o phpMyAdmin. Nesse caso instalei na minha mquina local. Voc ser presenteado com uma tela de erro, dizendo que o sistema no conseguiu acessar o banco de dados e que provavelmente voc no criou uma configurao. No que ele est certo?

3. Configurao
Existem duas formas de se configurar o phpMyAdmin, editando manualmente a configurao ou utilizando um script de setup online que cria a configurao para voc. Na minha opinio, editar o arquivo manualmente mais fcil e rpido, por isso vamos comear dessa forma. Abra o arquivo config.sample.inc.php, comece localizando a linha:
$cfg['blowfish_secret'] = '';

E colocando um valor qualquer e aleatrio nesta varivel, assim por exemplo:


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

Essa uma string aleatria 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 necessrio mudar o valor do host para o IP do servidor. Mas como aqui estamos usando a prpria mquina local, localhost serve. A configurao acima nos diz para o phpMyAdmin utilizar o sistema de autenticao cookie (usurio e senha so pedidos via formulrio na pgina 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 tambm), sem usar compactao de pginas no servidor (se seu Apache/PHP tiver, o que bem provvel, ative com true) e a extenso PHP que ser utilizada a mysql (se voc possuir a extenso mysqli ativada, use-a no lugar). Opcional: Se voc quiser adicionar mais servidores de bancos de dados, sendo possvel o usurio 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 confgurao 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 alm do banco de dados em localhost, poderei acessar tambm o banco de dados em mysql.dominio.com.br. Depois de configurado esses parmetros bsicos, salve o arquivo como config.inc.php. Agora acesse novamente o endereo do phpMyAdmin no navegador: http://localhost/phpmyadmin/

Login phpMyAdmin Desta forma o phpMyAdmin j foi configurado. O aviso na imagem vermelha indica que a extenso mcrypt do PHP no est instalada e que recomendado que voc instale e ative-a (no caso de estar usarmos o mtodo de autenticao cookie, que o nosso caso), caso contrrio, a ferramenta ficar mais lenta ou at mesmo no funcionar (mquinas de 64-bits). Se voc seguiu as recomendaes anteriormente, isso no 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. Extenso das funcionalidades


Alm das funcionalidades bsicas do phpMyAdmin - Criar usurios, tabelas, consultar, inserir, remover, importar, exportar, etc - possvel tambm extender a configurao para poder usar bookmarks, comentrios, histrico de comandos SQL, gerao de PDF dos dados, transformao de contedo, entre outros.

A razo por essas funcionalidades no estarem habilitadas por padro que elas necessitam de uma tabela prpria no banco de dados, separado dos usurios. O processo consiste em criar um usurio 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 usurio


Comeamos criando um usurio chamado pma. Na prpria ferramenta phpMyAdmin, depois de logado como root (administrador), selecione a aba Privilgios (Privileges). Logo abaixo da tabela que ser mostrada, clique em Adicionar novo usurio (Add new user).

Adicionar usurio no phpMyAdmin Preencha com o nome do usurio, 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 tambm a opo Criar banco de dados com o mesmo nome e conceder todos os privilgios (Create database with same name and concede all privileges).

4.2. Criando o usurio via linha de comando


Caso queira usar a linha de comando e no o phpMyAdmin, no servidor, conecte-se ao banco de dados:
$ mysql -u root -p Enter password: <digite a senha> Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 37 Server 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 usurio chamado pma e d todas as permisses 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 necessrio importar a estrutura de tabelas do phpMyAdmin. Para fazer isso via interface do phpMyAdmin, deslogue-se como root e logue-se com o usurio 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 diretrio scripts onde voc descompactou o phpMyAdmin e comente (colocando dois hfens e um espao no comeo 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 Localizao do arquivo texto (Location of the text file), selecione o arquivo create_tables.sql que voc editou e salvou. Clique em Importar, ento 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 diretrio scripts dentro de onde voc descompactou o phpMyAdmin, abra o arquivo create_tables.sql e comente (colocando dois hfens e um espao no comeo da linha) as seguintes linhas:
-- CREATE DATABASE IF NOT EXISTS `phpmyadmin` -- DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; -- USE phpmyadmin;

Depois salve o arquivo. Ento digite o comando:


$ mysql -u pma -p pma < create_tables.sql Password: <digite a senha do usurio 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 necessrio agora informar ao phpMyAdmin sobre esse novo usurio 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 estaro comentadas (com // no comeo da linha), ser necessrio descoment-las, deixando exatamente como mostrado aqui. Nestes parmetros, controluser e controlpass, coloque os valores correspondentes ao usurio e senha criados anteriormente. O phpMyAdmin se conectar ao banco de dados com esse usurio 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 parmetro 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 no precisamos mudar seus valores porque usamos exatamente estes. Salve o arquivo. Nota: Da mesma forma que o phpMyAdmin suporta mltiplos servidores de bancos de dados, voc poder duplicar essas linhas e coloc-las abaixo da configurao de outro servidor para que este outro servidor tenha essas funcionalidades extendidas tambm. Pronto! Agora o phpMyAdmin j pode utilizar todas as novas funcionalidades. Bom proveito! Agora quando voc for usar o phpMyAdmin, poder ver opes adicionais como a Aba Designer, Procurar Por Exemplos, Fazer comentrios sobre os bancos de dados e tabelas em Operaes, gerar PDF dos resultados de comandos SQL, entre outros.

5. Outros tipos de Autenticao


Alm do mtodo cookie, o mais recomendado por ser seguro e flexvel, podemos usar outros tipos de autenticao tambm. Descrevo aqui alguns mais relevantes:

Modo HTTP: O usurio ao invs de ter uma pgina de login, recebe uma caixa de dilogo do prprio navegador perguntando o usurio e a senha. Caso os dados estejam corretos, o phpMyAdmin j vai para sua tela principal de operao. O modo HTTP o mesmo usado nas autenticaes HTTP via o arquivo htaccess. Modo config: No pedido nenhuma senha para o usurio via navegador. O usurio 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 no recomendo muito.

Gostou?
Imprimir esta pgina

Leia tambm:

Gerenciando MySQL com o phpMyAdmin: Usurios Trabalhando com PHP e MySQL: Uma Introduo Limitando usurios com o PAM Shell: Entrada e Sada Backup Remoto

4 Comentrios em Gerenciando MySQL com o phpMyAdmin: Instalao


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

[...] Linux), novos Comentrios de Distribuies Linux, Nova Introduo ao Linux, Utilizando o bash, Instalao do phpMyAdmin, entre muitos [...] 2. Thiago
20 de jan de 2009 em 11:24 am

Instalei o PHPMyAdmin verso 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 fao INSERTs ou UPLOADs pelo PHPMyAdmin me parece que ele armazena no formato ISO-8859-1. Nas pginas do PHPMyAdmin aparece tudo certinho, mas nas pginas da aplicao os caracteres ficam truncados.

Se crio um arquivo em PHP (salvando como UTF-8), fao a conexo com o BD e insiro com mysql_query() os dados so apresentados certinho nas pginas da aplicao e no PHPMyAdmin so apresentados como caracteres estranhos. O que ser que pode ser? As pginas da aplicao so 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 variveis (veja abaixo), mas no resolveu. Algum teve problema parecido e descobriu o que ? Eu gostaria que ao editar no PHPMyAdmin os dados j ficassem armazenados corretamente para exibir na aplicao. 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 Configuraes 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 pginas em ISO-8859-1. Neste caso, para verificar, tente (s sei no Firefox) ver esta informao atravs do clique direito na pgina e na opo View

Page Info (Ver informaes da pgina). O campo Encoding (Codificao) tem que estar UTF-8 por exemplo. Se no estiver, a pode ser o problema. Recomendo ento configurar o servidor para servir pginas UTF-8 ao invs 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 soluo. Quero agradecer tambm o Hugo, mas no era este o problema. Resolvi o problema modificando minha classe de conexo 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

Potrebbero piacerti anche