La sentencia SHOW VARIABLES
muestra el valor de las variable del sistema/servidor en MySQL, no se necesita permisos especiales para ejecutar esta sentencia solo poder conectarse al servidor de MySQL, la sintaxis general es la siguiente.
SHOW [GLOBAL | SESSION] VARIABLES
[LIKE 'pattern' | WHERE expr]
Si no se especifica modificador se asume SESSION por defecto. Los operadores LIKE
y WHERE
se usan para filtrar los resultados en caso contrario se muestran todas la variables del sistema.
Ejemplos
Los ... puntos significa que hay más resultado por mostrar
Todas la variables del sistema
mysql> SHOW VARIABLES
+----------------------------------------------------------+------------------------------------------+
| Variable_name | Value |
+----------------------------------------------------------+------------------------------------------+
| activate_all_roles_on_login | OFF |
| admin_address | |
| admin_port | 33062 |
...
+----------------------------------------------------------+------------------------------------------+
Todas la variables del sistema cuyo valor no tenga más de 50 caracteres
mysql> SHOW VARIABLES WHERE LENGTH(Value) <= 50;
+----------------------------------------------------------+------------------------------------------+
| Variable_name | Value |
+----------------------------------------------------------+------------------------------------------+
| activate_all_roles_on_login | OFF |
| admin_address | |
| admin_port | 33062 |
...
+----------------------------------------------------------+------------------------------------------+
Todas las variables que casen con timeout
mysql> SHOW VARIABLES LIKE '%timeout%';
+-----------------------------------+----------+
| Variable_name | Value |
+-----------------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| mysqlx_connect_timeout | 30 |
| mysqlx_idle_worker_thread_timeout | 60 |
| mysqlx_interactive_timeout | 28800 |
| mysqlx_port_open_timeout | 0 |
| mysqlx_read_timeout | 30 |
| mysqlx_wait_timeout | 28800 |
| mysqlx_write_timeout | 60 |
| net_read_timeout | 60 |
| net_write_timeout | 60 |
| replica_net_timeout | 60 |
| rpl_stop_replica_timeout | 31536000 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| ssl_session_cache_timeout | 300 |
| wait_timeout | 28800 |
+-----------------------------------+----------+
23 rows in set (0.00 sec)
Usar el resultado en un script
Si desea usar el resultado anterior en un script entonces debe ejecutar un comando similar:
$ sudo mysql -u root -Bse 'SHOW VARIABLES LIKE "%admin%"'
admin_address
admin_port33062
admin_ssl_ca
admin_ssl_capath
admin_ssl_cert
admin_ssl_cipher
admin_ssl_crl
admin_ssl_crlpath
admin_ssl_key
admin_tls_ciphersuites
admin_tls_versionTLSv1.2,TLSv1.3
create_admin_listener_threadOFF
log_slow_admin_statementsOFF
persist_only_admin_x509_subject
Donde:
-B: Imprime el resultado usando tab como separador
-s: Modo silencio, produce resultado menos verboso, se puede repetir para que cada vez sea menos verboso.
-e: Ejecuta la sentencia especificada.
Rerencias
- SHOW VARIABLES Statement
- man mysql