Administração básica do MySQL

Existem muitas interfaces de administração para o MySQL, mas a forma mais elementar é usar o prompt de comando. Para acessar o prompt do MySQL, use o comando :

# mysql -u root -p <enter>

Enter password: <senha>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 43 to server version: 4.0.15-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Veja que o cabeçalho normal do bash foi substituído por um “mysql>”, que lembra onde você está ;). Para sair, pressione “Ctrl+C” ou execute o comando “Bye”.

Dentro do prompt do MySQL, use o comando “CREATE DATABASE” (criar base de dados), seguido pelo nome desejado. Neste exemplo, estou criando uma base de dados para usar na instalação do phpBB, que veremos a seguir. Um detalhe importante é que todos os
comandos dados dentro do prompt do MySQL devem terminar com ponto-e-vírgula:

mysql> CREATE DATABASE phpbb;
Query OK, 1 row affected (0.04 sec)

Para confirmar, use o comando “SHOW DATABASES;”, que lista as bases de dados criadas no servidor, como em:

mysql> SHOW DATABASES

+--------+
| Database |
+--------+
| information_schema |
| mysql |
| phpbb |
| test |
+--------+

Note que além da base “phpbb” que criamos, existem mais três bases de dados, criadas durante a instalação. As bases “mysql” e “information_schema” são para uso interno do MySQL, incluindo o armazenamento das configurações (sendo um banco de dados, o
MySQL usa a sí mesmo para armazenar suas configurações :), enquanto a base “test” é uma DB vazia, que pode ser usada para fins de teste.

Temos em seguida a questão das permissões de acesso. Nada impede que você sempre utilize a conta “root” do MySQL e inclusive configure os scripts instalados para o utilizarem. Entretanto, isso é extremamente inseguro, principalmente se você pretende
instalar vários scripts e aplicativos no mesmo servidor, ou se as bases de dados serão acessadas por vários usuários.

O ideal é que cada base de dados tenha um usuário próprio e seja acessível apenas por ele. Se você vai instalar o phpBB (fórum) e o WordPress (gerenciador de conteúdo), por exemplo, crie duas bases de dados (“phpbb” e “wordpress”, por exemplo) e dois
usuários separados, cada um com permissão para acessar uma das duas bases.

Na configuração de cada um dos gestores, informe a base de dados que será usada e o usuário e senha correspondente. Isso evita que eventuais problemas de segurança em um coloquem em risco também os dados referentes ao outro.

Outra situação comum é ao configurar um servidor com vários virtual hosts. Nesse caso, o webmaster de cada site vai precisar de uma ou mais bases de dados e, naturalmente, cada um vai precisar de um login próprio, com acesso apenas às suas próprias
bases de dados.

Para criar um usuário “phpbb”, com senha “nDPIcqq9” e dar a ele acesso à base de dados “phpbb” que criamos, use (dentro do prompt do MySQL) o comando:

mysql> GRANT ALL ON phpbb.* TO phpbb IDENTIFIED BY 'nDPIcqq9';

(permita tudo na base phpbb para o usuário phpbb, identificado pela senha nDPIcqq9)

mysql> FLUSH PRIVILEGES;

O comando “FLUSH PRIVILEGES” faz com que o servidor MySQL atualize as tabelas de permissões, fazendo com que a alteração entre em vigor automaticamente, em vez de apenas da próxima vez que o servidor for reinicializado. Na verdade, ele não é necessário
ao adicionar usuários usando o comando “GRANT” (como no nosso caso) mas é saudável se acostumar a utilizá-lo sempre que usar comandos que modifiquem as permissões de acesso. Você vai notar que a maioria dos tutoriais inclui o comando depois das operações
relacionadas a alterações nas permissões de acesso.

Continuando, para trocar a senha posteriormente, use o comando:

mysql> SET PASSWORD FOR phpbb = PASSWORD('JSAm950A');

(defina senha para o usuário phpbb, onde a senha é JSAm950A)

Este mesmo comando pode ser usado para trocar a senha do root, como em:

mysql> SET PASSWORD FOR root = PASSWORD('V5LQSxqL');

Se mais tarde você precisar remover as permissões de acesso de um usuário anteriormente criado (em um site com vários webmasters, onde um se desligou da equipe, por exemplo) use o comando:

mysql> REVOKE ALL ON phpbb.* FROM phpbb;

(remova todos os direitos para a base phpbb, para o usuário phpbb)

mysql> FLUSH PRIVILEGES;

Com isso, o usuário deixará de ter acesso à base de dados especificada, mas ainda continuará existindo no sistema e poderá acessar outras bases de dados a que tenha acesso. Para realmente remover o usuário, usamos o comando “DROP USER”, como em:

mysql> DROP USER phpbb

O comando “DROP USER” é suportado apenas pelas versões recentes do MySQL. Caso você esteja usando uma versão antiga, onde ele ainda não seja suportado, você pode usar o comando “DELETE FROM mysql.user WHERE User=”, como em:

mysql> DELETE FROM mysql.user WHERE User='phpbb';

Para remover uma base de dados, use o comando “DROP DATABASE”, como em:

mysql> DROP DATABASE phpbb;

Todos estes comandos devem ser dado dentro da base de dados “mysql”, a base de dados interna usada pelo MySQL, acessada por default ao abrir a interface. Se por acaso você tiver mudado a base de dados de trabalho anteriormente (usando o comando USE)
use o comando abaixo para voltar à base administrativa:

mysql> USE mysql;

Veja que os comandos usados dentro do prompt do MySQL seguem uma linguagem literal, usando palavras do inglês. Quem tem uma boa familiaridade com a língua tem bem mais facilidade em dominar os comandos.

Outra observação é que os comandos não são case sensitive. Tanto faz escrever “CREATE DATABASE phpbb;” ou “create database phpbb;”. Escrever os comandos em maiúsculas é apenas uma forma de dar mais destaque a eles.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X