Android

Como gerenciar bancos de dados e usuários mysql na linha de comando

Curso de MySQL – Gerenciamento de Usuários do sistema – Criar, Consultar, Renomear e Excluir

Curso de MySQL – Gerenciamento de Usuários do sistema – Criar, Consultar, Renomear e Excluir

Índice:

Anonim

O MySQL é o sistema de gerenciamento de banco de dados relacional de código aberto mais popular. O servidor MySQL nos permite criar vários usuários e bancos de dados e conceder privilégios apropriados para que os usuários possam acessar e gerenciar bancos de dados.

Este tutorial explica como usar a linha de comando para criar e gerenciar bancos de dados e usuários MySQL ou MariaDB.

Antes de você começar

Antes de começar com este tutorial, estamos assumindo que você já possui o servidor MySQL ou MariaDB instalado no seu sistema. Todos os comandos serão executados como um usuário root.

Para abrir o prompt do MySQL, digite o seguinte comando e digite a senha do usuário root do MySQL quando solicitado:

mysql -u root -p

Crie um novo banco de dados MySQL

Para criar um novo banco de dados MySQL, execute o seguinte comando, substitua database_name pelo nome do banco de dados que você deseja criar:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

Para evitar erros se o banco de dados com o mesmo nome que você está tentando criar existir, você pode usar o seguinte comando:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

Na saída acima, Query OK significa que a consulta foi bem-sucedida e 1 warning nos diz que o banco de dados já existe e que nenhum novo banco de dados foi criado.

Listar todos os bancos de dados MySQL

Você pode listar todos os bancos de dados existentes em nosso servidor MySQL ou MariaDB com o seguinte comando:

SHOW DATABASES;

A saída será mais ou menos assim:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Os bancos de dados information_schema , mysql , performance_schema e sys são criados no momento da instalação e estão armazenando informações sobre todos os outros bancos de dados, configuração do sistema, usuários, permissões e outros dados importantes. Esses bancos de dados são necessários para a funcionalidade adequada da instalação do MySQL.

Excluir um banco de dados MySQL

Excluir um banco de dados MySQL é tão simples quanto executar um único comando. Esta é uma ação não reversível e deve ser executada com cautela. Verifique se você não está removendo um banco de dados errado, pois depois de excluí-lo, ele não poderá ser recuperado.

Para excluir um MySQL ou MariaDB, o banco de dados execute o seguinte comando:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Para evitar esse erro, você pode usar o seguinte comando:

DROP DATABASE IF EXISTS database_name;

Crie uma nova conta de usuário MySQL

Uma conta de usuário no MySQL consiste em uma parte de nome de usuário e nome de host.

Para criar uma nova conta de usuário MySQL, execute o seguinte comando, substitua 'database_user' pelo nome do usuário que você deseja criar:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

No comando acima, definimos a parte do nome do host como localhost que significa que este usuário poderá conectar-se ao servidor MySQL apenas a partir do localhost (ou seja, do sistema em que o MySQL Server é executado). Se você deseja conceder acesso de outro (s) host (s), altere o localhost com o IP da máquina remota ou use '%' curinga '%' para a parte do host, o que significa que a conta do usuário poderá se conectar a partir de qualquer host.

Igual ao trabalhar com os bancos de dados para evitar um erro ao tentar criar uma conta de usuário que já existe, você pode usar:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Alterar uma senha da conta de usuário do MySQL

A sintaxe para alterar uma senha de conta de usuário MySQL ou MariaDB depende da versão do servidor que você está executando no seu sistema.

Você pode encontrar a versão do servidor emitindo o seguinte comando:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Nos dois casos, a saída deve ficar assim:

Query OK, 0 rows affected (0.00 sec)

Listar todas as contas de usuário do MySQL

Você pode listar todas as contas de usuário MySQL ou MariaDB consultando a tabela mysql.users :

SELECT user, host FROM mysql.user;

A saída deve ser semelhante à abaixo:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Excluir conta de usuário do MySQL

Para excluir uma conta de usuário, use o seguinte comando:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

O mesmo que ao trabalhar com os bancos de dados para evitar o erro que você pode usar:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Conceder permissões a uma conta de usuário MySQL

Existem vários tipos de privilégios que podem ser concedidos a uma conta de usuário. Você pode encontrar uma lista completa de privilégios suportados pelo MySQL aqui. Neste guia, passaremos por vários exemplos:

Para obter todos os privilégios de uma conta de usuário em um banco de dados específico, use o seguinte comando:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Para obter todos os privilégios de uma conta de usuário em todos os bancos de dados, use o seguinte comando:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Para obter todos os privilégios de uma conta de usuário em uma tabela específica de um banco de dados, use o seguinte comando:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Revogar permissões de uma conta de usuário MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Exibir privilégios de conta de usuário MySQL

Para encontrar os privilégios concedidos a uma conta de usuário específica do MySQL, digite:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Conclusão

Este tutorial aborda apenas o básico, mas deve ser um bom começo para quem deseja aprender como gerenciar bancos de dados e usuários MySQL na linha de comando. Você também pode verificar o tutorial sobre como redefinir uma senha root do MySQL, caso a tenha esquecido.

Isso é tudo! Se você tiver alguma dúvida ou comentário, fique à vontade para deixar um comentário.

mysql mariadb