domingo, 19 de julio de 2015

20 comandos MySQL para la administracion de bases de datos


mysqladmin es una utilidad de la linea de comandos que viene incorporada con MySQL Server y es usada por los administradores de bases de datos para realizar algunas tareas basicas como por ejemplo configurar el password del super-usuario (root), cambiarlo, monitorear procesos de MySQL, refrescar privilegios, chqeuqear el estado del servidor, etc. 

En este articulo, resumimos algunos comandos para mysqladmin muy utiles, los mismos utilizados en el dia a dia por los administradores de sistemas y bases de datos. 
Para poder probar los comandos, es necesario tener instalado el servidor de MySQL. 

Si no tenes instalado el servidor de MySQL, en estas entradas se explica como instalrlo (para /Red Hat Enterprise Linux/CENTOS/Fedora) 
Link (explicacion en Inlges) 



1 - Configurar el password de root 

Si hacemos una instalacion de MySQL, veremos que no reuqerira password para conectar, por tanto configuramos uno con el siguiente comando: 

# mysqladmin -u root password PASSWORD_ELEGIDO


2 - Cambiar el password de root 
Si necesitamos actualizar el password de root en MySQL, entonces ejecutamos el siguiente comando. 
Por ejemplo, decimos que el password antiguo es 123456 y lo queremos actualizar a xyz123

#mysqladmin -u root -p123456 password 'xyz123'


3 - Chequear que el servidor MySQL esta activo 
Para constatar esto, ejecutamos lo suiguiente. 

# mysqladmin -u root -p ping

Enter password:
mysqld is alive



4 - Chequear que version de MySQL se esta ejecutando 
El siguiente comando muestra la version de MySQL que estamos ejecutando. 

# mysqladmin -u root -p version

Enter password:
mysqladmin  Ver 8.42 Distrib 5.5.28, for Linux on i686
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.28
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 7 days 14 min 45 sec

Threads: 2  Questions: 36002  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.059



5 - Como conocer el estado actual del servidor 
Ejecutando este comando, nos muestra el estado actual, uptime (tiempo encendido), threads (hilos de procesos), y queries (cantidad de consultas). 

# mysqladmin -u root -ptmppassword status

Enter password:
Uptime: 606704  Threads: 2  Questions: 36003  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.059



6 - Chequear el estado de las variables del servidor y sus valores 
Para chequear estos datos, ejecutamos lo siguiente. 

# mysqladmin -u root -p extended-status

Enter password:
+------------------------------------------+-------------+
| Variable_name                            | Value       |
+------------------------------------------+-------------+
| Aborted_clients                          | 3           |
| Aborted_connects                         | 3           |
| Binlog_cache_disk_use                    | 0           |
| Binlog_cache_use                         | 0           |
| Binlog_stmt_cache_disk_use               | 0           |
| Binlog_stmt_cache_use                    | 0           |
| Bytes_received                           | 6400357     |
| Bytes_sent                               | 2610105     |
| Com_admin_commands                       | 3           |
| Com_assign_to_keycache                   | 0           |
| Com_alter_db                             | 0           |
| Com_alter_db_upgrade                     | 0           |
| Com_alter_event                          | 0           |
| Com_alter_function                       | 0           |
| Com_alter_procedure                      | 0           |
| Com_alter_server                         | 0           |
| Com_alter_table                          | 0           |
| Com_alter_tablespace                     | 0           |
+------------------------------------------+-------------+



7 - Chequear el estado de todas las variables del servidor MySQL 
Para conocer todas las varialbes activas del servidor y sus valores, ejecutamos lo suiguiente. 

# mysqladmin  -u root -p variables

Enter password:
+---------------------------------------------------+----------------------------------------------+
| Variable_name                                     | Value                                        |
+---------------------------------------------------+----------------------------------------------+
| auto_increment_increment                          | 1                                            |
| auto_increment_offset                             | 1                                            |
| autocommit                                        | ON                                           |
| automatic_sp_privileges                           | ON                                           |
| back_log                                          | 50                                           |
| basedir                                           | /usr                                         |
| big_tables                                        | OFF                                          |
| binlog_cache_size                                 | 32768                                        |
| binlog_direct_non_transactional_updates           | OFF                                          |
| binlog_format                                     | STATEMENT                                    |
| binlog_stmt_cache_size                            | 32768                                        |
| bulk_insert_buffer_size                           | 8388608                                      |
| character_set_client                              | latin1                                       |
| character_set_connection                          | latin1                                       |
| character_set_database                            | latin1                                       |
| character_set_filesystem                          | binary                                       |
| character_set_results                             | latin1                                       |
| character_set_server                              | latin1                                       |
| character_set_system                              | utf8                                         |
| character_sets_dir                              | /usr/share/mysql/charsets/              |
| collation_connection                              | latin1_swedish_ci                            |
+---------------------------------------------------+----------------------------------------------+



8 - Ver todos los procesos que ejecuta el servidor MySQL 
El siguiente comando los muestra. 

# mysqladmin -u root -p processlist

Enter password:
+-------+---------+-----------------+---------+---------+------+-------+------------------+
| Id    | User    | Host            | db      | Command | Time | State | Info             |
+-------+---------+-----------------+---------+---------+------+-------+------------------+
| 18001 | rsyslog | localhost:38307 | rsyslog | Sleep   | 5590 |       |                  |
| 18020 | root    | localhost       |         | Query   | 0    |       | show processlist |
+-------+---------+-----------------+---------+---------+------+-------+------------------+



9 - Como crear una base de datos 
Para crear una base de datos nueva, ejecutamos. 


# mysqladmin -u root -p create databasename

Enter password:


Mostrar las bases de datos creadas (show databases). 
# mysql -u root -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 18027
Server version: 5.5.28 MySQL Community Server (GPL) by Remi

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| databasename       |
| mysql              |
| test               |
+--------------------+
8 rows in set (0.01 sec)

mysql>



10 - Borrar una base de datos existente 
Ejecutando el siguiente comando podra ser borrada, antes preguntara confirmacion. 

# mysqladmin -u root -p drop databasename

Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'databasename' database [y/N] y
Database "databasename" dropped



11 - Recargar/Refrescar los privilegios MySQL 
Este comando recarga los privilegios, reabre logs entre otros. 

# mysqladmin -u root -p reload;
# mysqladmin -u root -p refresh



12 - Apagar de forma segura el servidor MySQL 
Ejecutamos lo suiguiente. 

#mysqladmin -u root -p shutdown

Enter password:


Podemos tambien usar los suiguientes comandos. 
# /etc/init.d/mysqld stop
# /etc/init.d/mysqld start



13 - Algunos comandos utiles para refrescar datos en MySQL 

flush-hosts: Refresca toda la informacion del cache que hostea MySQL. 
flush-tables: Refresca todas las tablas. 
flush-threads: Refresca los hilos de ejecucion. 
flush-logs: Refresca todos los logs de informacion. 
flush-privileges: Recarga las tablas de privilegios (lo mismo que recargar). 
flush-status: Limpia el stado de las variables. 

# mysqladmin -u root -p flush-hosts
# mysqladmin -u root -p flush-tables
# mysqladmin -u root -p flush-threads
# mysqladmin -u root -p flush-logs
# mysqladmin -u root -p flush-privileges
# mysqladmin -u root -p flush-status



14 - Matar un proceso cliente dormido 
Ejecutando lo siguiente. 

# mysqladmin -u root -p processlist

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 5  | root | localhost |    | Sleep   | 14   |       |                     |
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+


Entonces ejecutamos el siguiente comando. 
# mysqladmin -u root -p kill 5

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 12 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+


Si se necesita matar varios procesos, entonces le pasamos los ID's separados por comas. 
# mysqladmin -u root -p kill 5,10


15 - Ejecutar varios comandos en una sola linea 
Para hacerlo, deberian verse de la siguiente manera. 

# mysqladmin  -u root -p processlist status version

Enter password:
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 8  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+
Uptime: 3801  Threads: 1  Questions: 15  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.003
mysqladmin  Ver 8.42 Distrib 5.5.28, for Linux on i686
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.28
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 1 hour 3 min 21 sec

Threads: 1  Questions: 15  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.003



16 - Conectar a un servidor remoto 
Usamos el parametro -h (host) con la direccion IP. 

# mysqladmin  -h 172.16.25.126 -u root -p


17 - Ejecutar un comando en un servidor remoto 
Por ejemplo para ver el estado del mismo. 

# mysqladmin  -h 172.16.25.126 -u root -p status


18 - Iniciar/parar replica en un servidor remoto 
Para iniciar o parar una replica, utilizamos los siguientes comandos. 

# mysqladmin  -u root -p start-slave

# mysqladmin  -u root -p stop-slave


19 - Guardar informacion de debug en los logs 
Informacion de memoria, entre otros. 

# mysqladmin  -u root -p debug

Enter password:



20 - Ver y conocer las opciones de uso de mysqladmin 
Informacion sobre mysqladmin, parametros extras. 

# mysqladmin --help

No hay comentarios:

Publicar un comentario