Comando útiles MySQL.
Algunos comandos de este post son de emergencia o administracion avanzada. Usa --skip-grant-tables solo si hace falta recuperar acceso, idealmente con red cerrada. Antes de tocar usuarios, grants o borrar bases, haz backup y limita permisos por host en vez de abrir a % salvo laboratorio.
Mostrar usuarios de una base de datos:
1
2
| MySQL : SELECT User,Host FROM mysql.user;
PostgreSQL: SELECT * FROM pg_user;
|
Mostrar bases de datos disponibles:
1
2
| MySQL : SHOW DATABASES;
PostgreSQL: \l
|
Mostrar las tablas de la base de datos nextcloud:
1
2
| MySQL : USE nextcloud; SHOW TABLES;
PostgreSQL: \c nextcloud; \d
|
Quit Database:
1
2
| MySQL : quit
PostgreSQL: \q
|
Info sacada de aquí:
1
| https://docs.nextcloud.com/server/15/admin_manual/configuration_database/linux_database_configuration.html
|
Resetear password de root:
A quien no le ha pasado, vamos a ello:
systemctl stop mariadb mysqld_safe –skip-grant-tables & mysqld_safe –skip-grant-tables –skip-networking &( si nos queremos asegurar que no pueda entrar nadie) mysql -u root
FLUSH PRIVILEGES;
Encontre esta info, no recuerdo de donde la saqué:
1
2
3
4
5
| For MySQL 5.7.6 and newer as well as MariaDB 10.1.20 and newer, use the following command:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
For MySQL 5.7.5 and older as well as MariaDB 10.1.20 and older, use:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
|
A mi, me ha funcionado este:
1
2
| UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
|
1
2
3
| MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password='<PASSWORD_HASH>' WHERE User='<USUARIO_ADMIN>' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
|
Ahora matar el proceso mysqld_safe –skip-grant-tables
1
2
| kill -9
systemctl start mariadb
|
Y listos, ya tendriamos la pass cambiada.
Ahora damos acceso desde cualquier parte:
1
| GRANT ALL PRIVILEGES ON bbdd.* TO 'usuariobbdd'@'%';
|
Damos acceso solo a un usuaro, y solo desde una ip:
1
| GRANT ALL PRIVILEGES ON *.* TO 'USUARIO'@'IPHOST' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
|
Operativa con usuarios y bbdd:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| CREATE USER 'USUARIO'@'%' IDENTIFIED BY 'PASSWORD';
grant select BBDD.* to 'USUARIO'@'%';
GRANT SELECT ON BBDD.* TO 'USUARIO'@'%';
FLUSH PRIVILEGES;
REVOKE ALL PRIVILEGES ON *.* FROM 'USUARIO'@'%';
UPDATE
DROP USER 'USUARIO'@'localhost';
DROP USER 'USUARIO'@'%';
delete FROM mysql.user where User = 'USUARIO' and Host != '%';
CREATE USER 'usuario'@'localhost' IDENTIFIED VIA mysql_native_password;
SET PASSWORD FOR 'usuario'@'localhost' = PASSWORD('password');
CREATE DATABASE IF NOT EXISTS `database`;
GRANT ALL PRIVILEGES ON `database`.* TO 'usuario'@'localhost';
|
Si da problemas al importar una bbdd por tema de codificacion (utf8 etc etc)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| show variables like '%collation%';
show variables like '%char%';
MariaDB [(none)]> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----
------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
|
1
2
3
4
| SELECT User,Host FROM mysql.user, where User=bp;
update mysql.user
set Host =
|
Si quiero importar todas las BBDD de un sql :
1
| mysqldump -uroot -p --all-databases > dumpeo.sql
|
Si solo una:
1
| mysqldump -uroot -p database > dumpeo.sql
|
Si no se cuales hay, voy a verlas:
1
2
| mysql -uroot -p
show databases;
|
1
| DROP DATABASE nombre bbdd
|
Consolidacion de apuntes SQL
PostgreSQL
1
| psql -h <HOSTNAME> -U <USUARIO> -d <BBDD>
|
1
2
3
4
| select version();
select datname from pg_database;
select usename from pg_user;
select schemaname, tablename from pg_tables order by 1,2;
|
MySQL/MariaDB
1
2
3
| show databases;
show processlist;
select user, host from mysql.user;
|