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;
Visualizar 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;
Comprobar 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
Hacer un 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
¿Tienes algún comentario que hacer sobre este artículo?, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.