En este momento estás viendo Comandos básicos de administración de una base de datos MySQL

Comandos básicos de administración de una base de datos MySQL

Comandos básicos de MySQL

Sumario

  • Acceso y selección de base de datos a utilizar.
  • Crear y borrar bases de datos y usuarios
  • Dar permisos a los usuarios
  • Revocar permisos
  • Backup y recuperación de una base de datos
  • Desinstalación de MySQL

Acceso y selección de base de datos a utilizar.

Accedemos a mysql

mysql -u user_name -p password Database_name

Acceso con root y contraseña:

mysql -u root -p contraseña

Iniciamos sesión, introducimos el password y seleccionamos la base de datos

mysql -u root -p
Enter password: "root_User_password"

Seleccionamos la base de datos con la que operar

mysql> use mysql 

Cambiar de base de datos

mysql> use Database name ;

Ver todas las bases de datos

mysql> show databases;

Ver todas las tablas en la base de datos

mysql> show tables;

Ver la estructura de la tabla de datos

mysql> desc table_name ;

Comprobar los nombres de usuario

mysql> select user();

Comprobar el nombre de las bases de datos

mysql> select database();

Ver versión

mysql> select version();

Mostrar la hora actual

mysql> select now();

Ver el nombre de usuario de todos los usuarios, los que pueden iniciar sesión en el host, cadenas de autenticación

mysql> select user,host,plugin,authentication_string from user;

Ver los permisos de usuarios

mysql> show grants;

Ver los permisos de cualquier usuario

mysql> show grants for root@localhost;

Crear y borrar bases de datos y usuarios

Nos logueamos como root

mysql -u root -p contraseña mysql

Crear base de datos

mysql> create database ' Database_name ' charset=' Database_coding ';

Pongamos un ejemplo:

mysql> create database mydb charset=utf8;

Creación de usuarios de la base de datos

mysql> create user ' user_name '@'IP Address ' identified by ' password ';

Creamos el usuario local javier:

mysql> create user 'javier'@'localhost' identified by 'javier';

Borrar usuarios y bases de datos

Borrar base de datos

mysql> drop database [ Database_name ];

Por ejemplo:

mysql> drop database mydb;

Borrar usuarios de la base de datos

mysql> drop user ' user_name '@'ip Address ';

Por ejemplo, borramos el usuario javier, antes creado:

mysql> drop user 'javier'@'localhost';

Dar permisos a los usuarios

Para ver los permisos del usuario javier

mysql> show grants for javier@localhost;

Show :[GRANT USAGE ON *.* TO 'javier'@'localhost']
USO: Indica un usuario no autorizado

Para logearnos con usuario ‘javier’ y pasword ‘contraseña’ en la base de datos ‘mydb’

mysql -u javier -p contraseña mydb
Report error, prompt no right to operate :[ERROR 1044 (42000): Access denied for user 'javier'@'localhost' to database 'mydb']

Debemos utilizar el usuario root para dar permisos al usuario javier

mysql> grant all privileges on ' Database_name '.' Table_name ' to ' javier '@'IP Address ' identified by ' password ' with grant option;

Por ejemplo, para configurar los permisos de acceso de un cliente local

mysql> grant all privileges on mydb.* to 'javier'@'localhost' identified by 'contraseña' with grant option;

para configurar los permisos de acceso de un cliente remoto

mysql> grant all privileges on mydb.* to 'javier'@'%' with grant option;

Actualizar los permisos

mysql> flush privileges;

Ver los permisos de un usuario local

mysql> show grants for 'javier'@'localhost';
echo :[GRANT ALL PRIVILEGES ON 'mydb'.* TO 'javier'@'localhost' WITH GRANT OPTION]

Ver los permisos de un usuario remoto

mysql> show grants for 'javier'@'%';
echo :[GRANT ALL PRIVILEGES ON 'mydb'.* TO 'javier'@'%' WITH GRANT OPTION]
All permissions have been added successfully , Now both the local client and the remote client have login javier The user action mydb All the tables in the database have permissions .

Los permisos indican:

  • grant: Dar permisos
  • all privileges: Indica todos los permisos. También podemos asignar permisos específicos como: select, update, create, drop, etc…
  • on: Indica en que tabla de que base de datos se asignan los permisos,
    • «.*» significa todas las tablas de la base de datos especificada.
    • «*.*» significaría todas las tablas en todas las bases de datos.
  • to: Indica a que usuarios se le asignan los permisos. Con formato : «usuario» @ «IP o nombre de dominio»
  • localhost: Indica que el cliente local se puede loguear, «%» Indica que el usuario se puede logear desde cualquier host. Si es una IP específica, por ejemplo, «usuario» @ «192.168.1.10», significa que este usuario solo se puede loguear con el host cliente con ip 192.168.1.10. También se puede configurar la IP. Por ejemplo, «usuario»@ «192.168.1.%», el usuario se podría loguear desde cualquier equipo que esté dentro de la red especificada.
  • identified by: Configurar la contraseña de inicio de sesión para este usuario, también se puede configurar sin contraseña.
  • with grant option: Indica que este usuario puede autorizar sus propios permisos a otros usuarios.

Revocar permisos

mysql> revoke insert on ' Database_name '.' Table_name ' from ' user_name '@'IP Address ';

Por ejemplo, para revocar los permisos de INSERT, en todas las tablas de la base de datos mydb al usuario local javier:

mysql> revoke insert on mydb.* from 'javier'@'localhost';

Para revocar todos los permisos en la base de datos mydb al usuario local javier:

mysql> revoke all on mydb.* from 'javier'@'localhost';

Actualizamos los permisos

mysql> flush privileges;

Todos los permisos contienen una gran cantidad de opciones: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER

En el uso real, no se recomienda otorgar todos los permisos, solo dar a cada usuario los que necesite.

Podemos consultar la documentación oficial de mysql

Backup y recuperación de una base de datos.

Backup de todas las bases de datos:

mysql> mysqldump -u root -p --all-databases > all.db

Backup de la base de datos especificada:

mysql> mysqldump -u root -p mydb > copia.db

Backup de algunas tablas de una base de datos

mysql> mysqldump -u root -p mydb Table_name_1 Table_name_2 Table_name_n > Tablas_copiadas.db

Backup de una base de datos excluyendo algunas tablas ( Exclusión de table_1 y table_2)

mysql> mysqldump -u root -p mydb --ignore-table=mydb. table_1 --ignore-table=mydb. table_2 > Copiada_parte.db

establecer una base de datos de prueba

mysql> create database test charset=utf8;

Restaurar datos de respaldo, la base de datos importada debe existir

mysql -u root -p test < test1.db

Desinstalación de MySQL

Para proceder a la desinstalación de mysql, tenemos tres opciones:

sudo apt-get autoremove mysql* --purge
sudo apt-get remove mysql-server
sudo apt-get remove mysql-common

Para limpiar los datos residuales que puedan quedar, ejecutamos los tres comandos siguientes:

sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P
sudo rm -rf /etc/mysql/
sudo rm -rf /var/lib/mysql

Y verificamos que la eliminación es completa

whereis mysql
sudo find / -name mysql

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la pagina de contacto, tienes otro formulario.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.