Do not speak Portuguese? Translate this site with Google or Bing Translator
Comandos úteis do MySQL/MariaDB

Posted on: July 24, 2020 07:43 PM

Posted by: Renato

Categories: mysql linux

Views: 4075

Comandos úteis do MySQL/MariaDB  

Alguns comandos úteis de MySQLMariaDB, eu sou SysAdmin e quase não tenho a demanda de administrar banco de dados MySQL/MariaDB, porém sempre surge alguma tarefa que demande algo como: dump do banco, criar/excluir usuário, alterar permissão de usuário, migrar, acessar remoto e entre outras… Enfim é sempre um inferno lembrar dos comandos né? segue abaixo os comandos que eu mais utilizo. 🙂

Acessando o MySQL/MariaDB

Acessando localhost
mysql -u [nomedousuario] -p [senha];

# mysql -u nomedousuario -p 

Acessando remoto
mysql -u [nomedousuario] -p [senha] -h [dns ou ip 192.168.1.20];

# mysql -u nomedousuario -p -h 192.168.1.20

Gerenciamento de usuários

“Lembrando que sempre que for rodar um comando no mysql, precisa colocar ponto e virgula [;] no final de cada comando.”

Listando usuários (precisa estar logado).

mysql>  SELECT User FROM mysql.user;
+------------------+
| User             |
+------------------+
| debian-sys-maint |
| mysql.session    |
| mysql.sys        |
| gerson.carneiro  |
| root             |
+------------------+
Query OK, 0 rows affected (0.00 sec)

Listando os usuário e permissão de acesso (local/ip/todos).

 
mysql> SELECT User, Host FROM mysql.user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| gerson           | %         |
| linuxnaweb       | 10.8.0.5  |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
Query OK, 0 rows affected (0.00 sec)

Gerenciamento de usuários

Algumas informações relevantes!
No comando DROP USER ou CREATE USER ‘gerson’@’%’; após o @ pode ser definido alguns parâmetros, como:
% => acessa de qualquer host;
localhost => para acessar somente localhost;
192.168.1.2 => para acessar de um endereço IP específico;

Criando usuário para acessar local:

mysql> CREATE USER 'nomedousuario'@'localhost' IDENTIFIED BY 'senhadousuario';
Query OK, 0 rows affected (0.00 sec)

Criando usuário para ser acessado por qualquer host:

 
mysql> CREATE USER 'nomedousuario'@'%' IDENTIFIED BY 'senhadousuario';
Query OK, 0 rows affected (0.00 sec)

Criando usuário acessar de um ip específico:

mysql> CREATE USER 'nomedousuario'@'10.8.0.5' IDENTIFIED BY 'senhadousuario';
Query OK, 0 rows affected (0.00 sec)

Alterando senha de usuário:

mysql> SET PASSWORD FOR 'teste'@'localhost' = '123456';
Query OK, 0 rows affected (0.00 sec)

Excluindo usuário:

mysql> DROP USER 'gerson'@'%';
Query OK, 0 rows affected (0.00 sec)

Ou

mysql> DELETE FROM user WHERE user = 'gerson';

Renomeando/Alterando usuário:

mysql> RENAME USER 'gerson'@'%' TO 'teste'@'127.0.0.1';

Lembrando que sempre que executar os comandos para aplicar as modificações, certifique-se que executou o comando: FLUSH PRIVILEGES;

 
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Permissão de usuários

O MySQL/MariaDB trabalha com as seguintes permissões:

Manipulação de Dados
SELECT Somente Leitura
INSERT Inserção de Dados
UPDATE Atualização de Dados
DELETE Remoção de Dados
Manipulação de Tabelas
CREATE Criação de novas Tabelas/Bases
ALTER Modificação de Tabelas/Colunas
DROP Remocação de Tabelas/Bases

Para dar uma permissão a um usuário específico, você pode utilizar esta estrutura:

GRANT [tipo de permissão] ON [nome da base de dados].[nome da tabela] TO ‘[nome do usuário]’@'localhost’;

Permissão total em todos os bancos:

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

Gerenciando databases

Criando database:

mysql> CREATE DATABASE nomedatadabase;
Query OK, 1 row affected (0.00 sec)

Acessando uma database:

mysql> USE nomedadatabase;
Database changed

Listando database:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| nomedadatabase     |
+--------------------+
Query OK, 0 rows affected (0.00 sec)

Deletando database:

mysql> DROP DATABASE teste;
Query OK, 0 rows affected (0.00 sec)

Listando tabelas de uma database:

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
... >> dei uma resumida, porque fica muito grande.
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

Gerenciando processos no MySQL

Listando processos:

mysql> SHOW FULL PROCESSLIST\G;
*************************** 1. row ***************************
Id: 1
User: system user
Host:
db: NULL
Command: Connect
Time: 1030455
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 1004
State: Has read all relay log; waiting for the slave
       I/O thread to update it
Info: NULL

Listando os processos em lista:

mysql> SHOW FULL PROCESSLIST;
+----+------+-----------+-------+---------+------+----------+-----------------------+
| Id | User | Host      | db    | Command | Time | State    | Info                  |
+----+------+-----------+-------+---------+------+----------+-----------------------+
| 10 | root | localhost | mysql | Query   |    0 | starting | show full processlist |
+----+------+-----------+-------+---------+------+----------+-----------------------+
1 row in set (0.00 sec)

Listando processos em uma database específica:

mysql> SELECT * from INFORMATION_SCHEMA.PROCESSLIST where db = 'nomedadatabase';

Listando processos e ordenando com o status não “dormindo” sleep:

 
mysql> SELECT * from information_schema.processlist where COMMAND != 'Sleep'  order by time;

Matando processos:

mysql> kill 12;
Query OK, 0 rows affected (0.00 sec)

Matando todos os processos que estão ativos no momento

SELECT concat(‘KILL ‘,id,‘;’) from INFORMATION_SCHEMA.PROCESSLIST
where time > 1 and command != “sleep”

Fazendo Backup e Restore

Fazendo backup da database:
Parâmetros utilizados:
mysqldump -u [usuário] -p <senha> [nomedadatabase] > [nomedoarquivo]-$(date +%F).sql

# mysqldump -u root -p mysql > dump-$(date +%F).sql
Enter password: 
root@ubuntu-16-04-06:~# ls -lh
total 1.2M
-rw-r--r-- 1 root root 1.2M Nov 24 07:48 dump-2019-11-24.sql

Restaurando dump/backup:
Foram utilizados os mesmos parâmetros do comando acima.

# mysql -u root -p nomedadatabase < dump-2019-11-24.sql

Comando interessante! 🙂

Executar comandos no host que o mysql está instalado:
O comando system, permite que execute os comandos no host em que está instalado.

mysql> system ifconfig;
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:7e:0f:dc  
          inet addr:192.168.68.108  Bcast:192.168.68.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe7e:fdc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21068 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27070338 (27.0 MB)  TX bytes:566874 (566.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:176 errors:0 dropped:0 overruns:0 frame:0
          TX packets:176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:13296 (13.2 KB)  TX bytes:13296 (13.2 KB)
 

É isso galera, espero que ajude, tentei reunir em um só artigo todos os comandos que são mais utilizados, mas caso falte algum que utiliza bastante no dia-dia, coloque nos comentários que eu irei incluir no artigo! 😉


3

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (158) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (27) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (40) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1)

New Articles



Get Latest Updates by Email