Instalar servidor MySQL en Debian Stretch

Este articulo explica como instalar el servidor y un cliente de lineas de comando de la base de datos MySQL en Debian 9 (Stretch).

Introducción

Logotipo de MySQL

Logotipo de MySQL

MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual por Oracle Corporation, está considerada como la base datos de código abierto más popular del mundo, tradicionalmente se considera uno de los cuatro componentes de la pila de desarrollo LAMP y WAMP.

Instalación

Para instalar el servidor y un cliente de lineas de comando MySQL, ejecute el siguiente comando:

$ sudo apt update && sudo apt upgrade
$ sudo apt install mysql-server mysql-client default-libmysqlclient-dev

Tenga en cuenta que hemos instalado las librerías y los encabezados de desarrollo con el paquete ‘default-libmysqlclient-dev’ las cuales se puede dejar por fuera, pero he encontrado que son útiles en muchas situaciones.

Bajo Debian y Ubuntu, el paquete ‘mysql-server’ proporciona un pequeño soporte, que le permite asegurar fácilmente la instalación de su servidor MySQL/MariaDB.  Responda principalmente con Y en todas las preguntas que el script le solicite. Además, asegúrese de elegir una contraseña segura para la cuenta de root. Tenga en cuenta que la cuenta root de MySQL no es idéntica a la cuenta root de Linux. El primero se usa solo para administrar la base de datos MySQL/MariaDB y el segundo es la cuenta de super usuario en cada sistema Linux. Estas cuentas nunca se superponen en un sistema.

Entonces hago lo siguiente:

$ sudo mysql_secure_installation

Ahora se le solicitará su contraseña para el administrador de MySQL/MariaDB. Ingrese la contraseña o deje el campo en blanco si no se establece una contraseña.

Ahora usted está guiado por algunas opciones para hacer que el servidor MySQL/MariaDB sea más seguro. El diálogo debe ser muy similar al siguiente:

$ sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

De esta forma tiene bien configurado y asegurado su servidor de base de datos.

Gestión del servicio de MySQL

Para conocer los diversos parámetros de gestión para el servicio del servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql
Usage: /etc/init.d/mysql start|stop|restart|reload|force-reload|status|bootstrap

Estatus del servicio de MySQL

Para conocer el estatus del servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql status
● mariadb.service - MariaDB 10.1.38 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; 
   vendor preset: enabled)
   Active: active (running) since Sun 2019-06-23 16:16:25 -04; 1h 46min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 13337 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           └─13337 /usr/sbin/mysqld

jun 23 16:16:22 madebian systemd[1]: Starting MariaDB 10.1.38 database server...
jun 23 16:16:24 madebian mysqld[13337]: 2019-06-23 16:16:24 139999503777152
    [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0+deb9u1) starting as process 13337 ...
jun 23 16:16:25 madebian systemd[1]: Started MariaDB 10.1.38 database server.

Detener el servicio de MySQL

Para detener el servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql stop

Iniciar el servicio de MySQL

Para iniciar el servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql start

Reiniciar el servicio de MySQL

Para reiniciar el servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql restart

Recargar configuración del servicio de MySQL

Para recargar la configuración del servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql reload
[ ok ] Reloading MariaDB database server: mysqld.

Forzar la recargar de configuración del servicio de MySQL

Para forzar la recargar de la configuración del servicio para el servidor de base de datos MySQL, ejecute el siguiente comando:

$ sudo service mysql force-reload

Registro de eventos

El servidor de base de datos MySQL pose dos archivos por defecto para registrar eventos de acceso y errores dentro del servicio en ejecución, a continuación doy detalles de estos:

Archivo log de errores

Para depurar posibles errores del servidor de base de datos MySQL, con el siguiente comando:

$ sudo tail -f /var/log/mysql/error.log

Iniciar sesión de usuario MySQL

Primero tiene que iniciar sesión como usuario “root” de MySQL, con el siguiente comando:

$ sudo mysql -u root -p
Enter password:

Entonces coloque la contraseña del usuario “root” definida previamente. Luego de iniciar sesión en el servidor como usuario “root” MySQL debe mostrarle algo parecido a lo siguiente:

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]>

Creando base de datos

Una vez, iniciado sesión de usuario MySQL, allí usted puede crear una Base de datos, con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE my_db;

Explicacion:

  • my_db, es el nombre real de su base de datos y por tanto debe ser sustituido por el nombre real.

Así de esta forma creo una nueva base de datos.

Mostrar las base de datos

Para comprobar que la base datos se creo, ejecute el siguiente comando:

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

Así de esta forma listo las base de datos existentes.

Cerrar sesión de usuario MySQL

Para cerrar la sesión de usuario MySQL, ejecute el siguiente comando:

MariaDB [(none)]> EXIT;

Así de esta forma cerro la actual sesión de usuario MySQL.

Crear estructura en base de datos

A continuación se creará una base de datos basado en un script con todas las sintaxis SQL para construirla. Este script se llama “my_db-ddl.sql“. Entonces debe ubicarse en el directorio donde esta este archivo .sql y ejecutamos el siguiente comando para correr el script:

$ sudo mysql -u root -p my_db < my_db-ddl.sql
Enter password:

Si la estructura de la base de datos se creo con éxito, no muestra ningún mensaje en la linea de comando.

Mostrar tablas de base de datos

Usted puede mostrar la estructura de datos de la base datos, ejecutando los siguientes comando:

$ sudo mysql -u root -p
Enter password:

Seguidamente selecciona la base de datos a listar su estructura, ejecutando los siguientes comando:

MariaDB [(none)]> USE my_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [my_db]> SHOW TABLES;
+-----------------+
| Tables_in_my_db |
+-----------------+
| person          |
| users           |
+-----------------+
2 rows in set (0.00 sec)

Luego cierre la sesión de usuario MySQL, ejecute el siguiente comando:

MariaDB [my_db]> EXIT;
Bye

Así de esta forma listo la tablas de la base de datos.

Creando usuarios

Vuelve a entrar como root para crear usuarios para esta base, en este caso usuario admin con su contraseña admindb con el siguiente comando:

$ sudo mysql -u root -p
Enter password:

Una vez conectado el servidor puede crear el usuario, ejecutando el siguiente comando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON my_db.* TO 'admin'@'localhost' \
IDENTIFIED BY 'admindb';
Query OK, 0 rows affected (0.03 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

Para comprobar que el usuario se creo con éxito, ejecute los siguientes comando:

MariaDB [(none)]> SELECT user FROM mysql.user;
+-------+
| user  |
+-------+
| admin |
| root  |
+-------+
2 rows in set (0.00 sec)

Luego salga de la la sesión de usuario MySQL, para ingresar con el usuario creado:

MariaDB [(none)]> EXIT;
Bye

Así de esta forma creo un usuario nuevo y otorgo permisos sobre la base de datos recien creada.

Acceso con usuario y base de datos creada

Ahora debe conectarse como usuario admin indicándole de la base de datos my_db de la siguiente forma:

$ sudo mysql -u admin -p my_db
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.1.38-MariaDB-0+deb9u1 Debian 9.8

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [my_db]>

De esta forma ¡esta listo para trabajar con la base de datos!

Referencias

Conclusiones

De esta forma usted ha aprendido a:

  • Instalar el servicio del servidor de base de datos MySQL.
  • Gestionar el servicio del servidor de base de datos MySQL con las lineas de comando más comunes.
  • Auditar el registro de eventos para el servicio del servidor de base de datos MySQL.
  • Crear base de datos usando sintaxis SQL con Data Definition Language.
  • Crear usuario de base de datos usando sintaxis SQL con Data Definition Language.
  • Acceder vía linea de comando localmente con el usuario y la clave definida a la base de datos creada.

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dolares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!


También puede realizar su donativo con Bitcoin (BTC) en escaneando el siguiente código QR:

¡Ayúdame a continuar Blog de lcaballero.wordpress.com!

O usando en la siguiente dirección:

bitcoin:13uZUXXqLP3Ct3ksWHXnDqSrbMbhDV9hGz

Anuncios

One thought on “Instalar servidor MySQL en Debian Stretch

  1. Pingback: Instalar WordPress en Debian Stretch | Leonardo J. Caballero G.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s