Tabla de Contenidos
Introducción al uso de MySQL
El Sistema Gestor de Bases de Datos MySQL, funciona a través de un programa “servidor” MySQL, que es el que guarda la información y realiza todas las operaciones. Un programa “cliente” se conecta al servidor y le indica las operaciones que debe de realizar y le retorna los datos resultantes de las consultas. Ambos programas están disponibles para gran cantidad de sistemas operativos y dispositivos hardware. Los clientes y servidores pueden estar instalados en máquinas diferentes o en la misma indistintamente.
El cliente básico de MySQL en el programa mysql (en Windows mysql.exe) y una vez instalado se encuentra en la carpeta /bin generada por la instalación.
Para conectarse al servidor, se requerirá un usuario (login) y una contraseña (password), y la dirección del servidor si se trata de una máquina diferente a la del cliente. En la consola de comandos, nos conectaremos de la forma:
shell> mysql -h NombreDelServidor -u NombreDelUsuario -p [Nombre de la base de datos a utilizar]
A continuación nos pedirá la contraseña. También puede indicarse a continuación de -p (sin dejar ningún espacio), pero esto podría representar un problema de seguridad.
Una vez nos hayamos conectado al servidor MySQL, nos aparecerá el prompt mysql> que indica que el sistema está listo para recibir comandos.
Por defecto la instalación de MySQL incorpora dos usuarios: administrador (root) e invitado (ODBC y tambión ''), ambos con privilegios de administrador cuando se conectan de modo local (en la misma máquina) al servidor. Estos usuarios no requieren de contraseña y pueden suponer un riesgo de seguridad.
Normalmente, tras la instalación de mysql se generan las bases de datos “test” y “mysql”. La base de datos “test” sólo sirve para hacer pruebas y está pensada para que los usuarios que están aprendiendo la usen para fines didácticos. La base de datos “mysql” es necesario para que el sistema funciones, ya que contiene información de los privilegios de los usuarios MySQL.
Para desconectarnos podemos escribir el comando quit ó exit.
Consultas básicas
A continuación se especifican algunas consultas báicas para el administrador de MySQL:
- Consulta para conocer la versión del servidor y la fecha actual:
SELECT version(), current_date();
- Consulta para conocer el nombre del usuario que ha efectuado la conexión:
SELECT user();
- Consultar usuarios, host y contraseñas (encriptadas) de usuarios del servidor:
SELECT user, host, password from mysql.user;
- Añadir password encriptada al usuario root, según el host desde el que se conecte:
SET PASSWORD FOR root=PASSWORD('new_password'); # Sirve para conectar con root desde cualquier máquina SET PASSWORD FOR root@localhost=PASSWORD('new_password'); # Sirve para conectar con root desde //localhost//
- Establecer nueva contraseña encriptada a cualquier usuario:
SET PASSWORD FOR NombreUsuario@HostUsuario=PASSWORD('new_password');
- Visualizar las bases de datos existentes en el servidor al que nos conectamos:
SHOW DATABASES;
- Para seleccionar la base de datos en la que realizaremos las operaciones (paso siguiente tras conectarnos a la base de datos):
Use NombreBaseDeDatos # El ';' no es obligatorio en este caso, y debe especificarse en una sola línea
- Crear una base de datos:
CREATE DATABASE NombreBaseDeDatos;
En Unix/Linux los nombres de las bases de datos sí son Case Sensitive, aunque el resto de las sentencias MySQL no lo sean.
- Visualizar la base de datos que estamos utilizando:
SELECT database();
Es posible acceder a una base de datos diferente de en la que se encuentra el usuario, si tiene los permisos necesarios, y lo indica de la forma: NombreDeLaBaseDeDatos.Tabla
- Para ver un listado de las tablas de la base de datos en la que nos encontramos:
SHOW TABLES;
- Para ver la descripción de una tabla (columnas, tipos asociados, atributos que permiten valores nulos, etc):
# Todas las sentencias siguientes son sinónimas DESC NombreTabla; DESCRIBE NombreTabla; SHOW COLUMNS FROM NombreTabla;
- Para visualizar la sentencia de creación de una tabla de la base de datos:
SHOW CREATE TABLE NombreTabla \G # La '\G' permite ver la salida de la consulta en una sola fila
- Para obtener información acerca de una tabla:
SHOW TABLE STATUS [FROM NombreBaseDeDatos] [LIKE 'patron'] # Patron puede ser el nombre de la tabla, o un patrón en el que se especifique parte de éste
Scripts
Dado que el cliente de consola de mysql no es demasiado amigable a la hora de trabajar con él, es posible escribir las sentencias largas en un editor de textos común (notepad, notepad++, etc) y “copiar” y “pegar” en la consola del cliente.
Para ello se escribe la sentencia en el procesador de textos y se “copia” de forma convencional. A continuación se “pega” en la consola con el botón derecho del ratón; y ENTER para ejecutarla.
Para ejecutar scrits en MySQL (varias secuencias de comandos predefinidas):
- Lo primero es crear los scripts a ejecutar en un procesador de textos convencional. Se recomienda unsar la extensión “.sql ”, para poder identificar qué tipo de archivos son. El servidor MySQL no distingue entre extensiones, siempre intentará ejecutar el archivo que le proporcionemos.
- Para ejecutar el script desde la consola, sin habernos conectado al servidor:
Shell> mysql < DireccionCompleta\archivo.sql
Si deseamos que en caso de error en una sentencia sigan ejecutándose el resto de sentencias, tendremos que añadir el parámetro –force:
Shell> mysql --force < DireccionCompleta\archivo.sql
Si la máquina no está en la misma máquina, o nos estamos conectando a través de un cliente:
Shell> mysql -h DireccionHost -u UsuarioMysql -p < DireccionCompleta\archivo.sql
Si deseamos guardar la salida resultante de la ejecución del script:
Shell> mysql < DireccionCompleta\archivo.sql > salida-del-script.txt
Si deseamos lanzar el script desde el cliente de MySQL (ya conectados al servidor):
SOURCE DireccionCompleta\archivo.sql
\. DireccionCompleta\archivo.sql # Equivalente al anterior, pero de forma abreviada
Proceso del servidor
En la mayoría de las instalaciones de MySQL. en sus distintas versiones, se selecciona por defecto la opción de arrancar automáticamente el proceso de servidor cuando arranca el host sobre el que está instalado.
El proceso (o demonio) servidor en MySQL se denomina mysqld o una de sus variantes mysqld-opt, mysqld-nt, mysqld-max, mysqld-max-nt. Más información en el manual oficial.
En Windows
En Windows el proceso de MySQL se suele instalar como un servicio de Windows. Para comprobar su estado es necesario acceder a la ventana de servicios (services.msc). Si no está instalado como un servicio de Windows, habría que acceder al Administrador de Tareas (taskmgr o ctrl+alt+supr).
Desde la ventana de servicios, podemos iniciar o detener el proceso, o incluso configurarlo para que inicie automáticamente al iniciar Windows. Otro modo de establecer el inicio automático es indicándolo en la consola de Windows a través de la opción defaults-file, que se encuentra en el fichero de configuración. El comando será similar al siguiente:
C:\MySQL410\bin\mysqld-max-nt --defaults-file="C:\MySQL410\my.ini"
Si lo que queremos es detener el proceso en la consola de comandos, lo mejor es usar el programa mysqladmin y añadirle la opción shutdown. El comando sería el siguiente:
c:\> mysqladmin -uroot -ppassword shutdown
En Linux
Para saber si el demonio se está ejecutando en Linux, debemos abrir un terminal y ejecutar:
ps -A | grep mysqld
Si MySQL se está ejecutando, deberá retornar algo similar a:
2752 ? 00:00:00 mysqld
En Linux hay muchas formas de arrancar el servidor MySQL. Una de las más simples y seguras es arrancar al servidor a través del script de arranque mysqld_safe, que suele encontrarse en la carpeta /usr/bin/ en la mayoría de las distribuciones.
Para detener el proceso en Linux, se puede usar el programa mysqladmnin de la misma manera que se vio en el apartado anterior, bajo Windows.
