Mini tutorial comandos Mysql
Conexión MySQL Client
mysql -u -h -P -p
Ejemplo de conexión utilizando usuario “root” desde la consola:
#$ mysql -u root -p
Enter password: #####
Welcome TO the MySQL monitor. Commands end WITH ; OR g.
Your MySQL connection id IS 89 TO server version: 4.1.11-Debian_4-log
Type 'help;' OR 'h' FOR help. Type 'c' TO clear the buffer.
mysql>
Trabajando con Bases de Datos – Creación de BBDD
mysql> CREATE DATABASE miBD_db;
Query OK, 1 row affected (0.03 sec)
Selección de BD
Cambiar o elegir base de datos a utilizar:
mysql> USE miBD_db;
DATABASE changed
Ver la base de datos seleccionada:
mysql> SELECT DATABASE();
+————+
| DATABASE() |
+————+
| miBD_db |
+————+
1 row IN SET (0.00 sec)
Eliminación de BD
mysql> DROP DATABASE miBD_db;
Query OK, 0 rows affected (0.60 sec)
Trabajando con Usuarios / Privilegios
Creación de Usuarios
Usuarios
Ejm: Otorgar todos los privilegios a
mysql> GRANT ALL PRIVILEGES ON miBD.* TO miBD_user_allpriv@localhost IDENTIFIED BY 'miBD_pass';
Query OK, 0 rows affected (0.14 sec)
Usuarios sin privilegios (solo introduce el usuario en la tabla mysql.user):
mysql> GRANT USAGE ON miBD_db.* TO miBD_user_nopriv@localhost IDENTIFIED BY 'miBD_pass';
Query OK, 0 rows affected (0.01 sec)
Usuarios con privilegios de solo lectura en registros:
mysql> GRANT SELECT ON miBD.* TO user_bd@localhost IDENTIFIED BY 'miBD_pass';
Query OK, 0 rows affected (0.02 sec)
Usuarios con priligegios de solo inserción o modificación de registros:
mysql> GRANT INSERT,UPDATE ON miBD_db.* TO miBD_user_wo@localhost IDENTIFIED BY 'miBD_pass';
Query OK, 0 rows affected (0.01 sec)
Selección de Usuarios
Ver el usuario con el que se está trabajando
mysql> SELECT user();
+————————+
| user() |
+————————+
| miBD_user@localhost |
+————————+
1 row IN SET (0.00 sec)
Visualización de Privilegios de Usuarios
mysql> SHOW grants FOR 'miBD_user_allpriv'@'localhost';
+————————————————————————————————+
| Grants FOR miBD_user_allpriv@localhost |
+————————————————————————————————+
| GRANT USAGE ON *.* TO ‘miBD_user_allpriv’@'localhost’ IDENTIFIED BY PASSWORD ’1a7f0760d48e’ |
| GRANT ALL PRIVILEGES ON `miBD_db`.* TO ‘miBD_user_allpriv’@'localhost’ |
+————————————————————————————————+
2 rows IN SET (0.00 sec)
Eliminación de Usuarios
mysql> REVOKE ALL PRIVILEGES ON miBD.* FROM 'miBD_user_allpriv'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW grants FOR 'miBD_user_allpriv'@'localhost';
+————————————————————————————————+
| Grants FOR miBD_user_allpriv@localhost |
+————————————————————————————————+
| GRANT USAGE ON *.* TO ‘miBD_user_allpriv’@'localhost’ IDENTIFIED BY PASSWORD ’1a7f0760d48e’ |
+————————————————————————————————+
1 row IN SET (0.00 sec)
mysql> REVOKE usage ON *.* FROM 'miBD_user_allpriv'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> DROP user 'miBD_user_allpriv'@'localhost';
Query OK, 0 rows affected (0.00 sec)
Trabajando con Tablas – Tipos de Tablas y Motores de Almacenamiento
Referencia manual MySQL
Tipos de Campos
Referencia manual MySQL
Creación Tablas – MyISAM
mysql> CREATE TABLE clientes (
id_cliente INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
razon_social VARCHAR (50) NOT NULL,
domicilio VARCHAR (100) NOT NULL,
nif VARCHAR (9) NOT NULL,
contacto VARCHAR (40)
) ENGINE=MyISAM;
Query OK, 0 rows affected (0.05 sec)
mysql> CREATE TABLE presupuestos (
id_presupuesto INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
empresa INT(8) NOT NULL,
asunto VARCHAR (60),
precio FLOAT DEFAULT 0.0,
fecha DATE,
) ENGINE=MyISAM;
Query OK, 0 rows affected (0.20 sec)
InnoDB
mysql> CREATE TABLE clientes (
id_cliente INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
razon_social VARCHAR (50) NOT NULL,
domicilio VARCHAR (100) NOT NULL,
nif VARCHAR(9) NOT NULL,
contacto VARCHAR(40)
) ENGINE=InnoDB;
Query OK, 0 rows affected (0.10 sec)
mysql> CREATE TABLE presupuestos (
id_presupuesto INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
empresa INT(8) NOT NULL,
asunto VARCHAR (60),
precio FLOAT DEFAULT 0.0,
fecha DATE,
INDEX (empresa),
FOREIGN KEY (empresa) REFERENCES clientes(id_cliente) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
Query OK, 0 rows affected (0.06 sec)
Visualización Tablas
Tablas contenidas en una Base de Datos:
mysql> SHOW TABLES;
+——————+
| Tables_in_prueba |
+——————+
| clientes |
| presupuestos |
+——————+
2 rows IN SET (0.00 sec)
Estructura de una tabla:
mysql> DESC presupuestos;
+—————-+————-+——+—–+———+—————-+
| FIELD | Type | NULL | KEY | DEFAULT | Extra |
+—————-+————-+——+—–+———+—————-+
| id_presupuesto | int(8) | | PRI | NULL | AUTO_INCREMENT |
| empresa | varchar(50) | | | | |
| asunto | varchar(60) | YES | | NULL | |
| precio | float | YES | | 0 | |
| fecha | date | YES | | NULL | |
+—————-+————-+——+—–+———+—————-+
5 rows IN SET (0.01 sec)
Modificación Tablas
Referencia manual MySQL
Añadir un nuevo campo
mysql> ALTER TABLE [database.]tabla ADD campo_nuevo tipo AFTER campo_viejo;
mysql> ALTER TABLE presupuestos ADD adjunto BLOB AFTER fecha ;
Query OK, 0 rows affected (0.06 sec)
Registros: 0 Duplicados: 0 Peligros: 0
Cambiar el nombre de una tabla
mysql> ALTER TABLE [database.]tabla RENAME tabla_nueva;
mysql> ALTER TABLE presupuestos RENAME proyectos;
Query OK, 0 rows affected (0.03 sec)
Cambiar el tipo de dato de un campo
mysql> ALTER TABLE [database.]tabla CHANGE campo campo nuevo_tipo;
mysql> ALTER TABLE presupuestos CHANGE asunto asunto VARCHAR(100);
Query OK, 0 rows affected (0.23 sec)
Registros: 0 Duplicados: 0 Peligros: 0
Eliminar un campo existente
mysql> ALTER TABLE [database.]tabla DROP campo;
mysql> ALTER TABLE presupuestos DROP adjunto;
Query OK, 0 rows affected (0.05 sec)
Registros: 0 Duplicados: 0 Peligros: 0
Eliminación Tablas
mysql> DROP TABLE [database.]tabla;
mysql> DROP TABLE presupuestos;
Query OK, 0 rows affected (0.44 sec)
Trabajando con Registros
Nota: Si no se indica la Base de Datos a la que una tabla hace referencia, es necesario seleccionar previamente dicha BBDD (use database).
Consultas
mysql> SELECT campo1,campo2,.. FROM [database.]tabla;
mysql> SELECT * FROM proyectos;
Empty SET (0.10 sec)
Inserción de datos
mysql> INSERT INTO [database.]tabla (campo1,campo2,..) VALUES (’valor_campo1’,’valor_campo2’,..);
mysql> INSERT INTO presupuestos (empresa,asunto,precio,fecha) VALUES ('UPV','Formación GNU/Linux','600','2005-07-01');
Query OK, 1 row affected (0.00 sec)
Modificación de datos
mysql> UPDATE [database.]tabla SET campo1=’valor_nuevo_campo1’,campo2=’valor_nuevo_campo2’ WHERE condición;
mysql> UPDATE presupuestos SET empresa='UPV/EHU' WHERE empresa='UPV';
Eliminación de datos
mysql> DELETE FROM [database.]tabla WHERE condición;
mysql> DELETE FROM presupuestos WHERE id='1';
Query OK, 1 row affected (0.04 sec)
Trabajando con MySQL
Variables de Sistema
Ver variables de sistema:
mysql> SHOW VARIABLES;
+———————————+———————————————————-+
| Variable_name | Value |
+———————————+———————————————————-+
| back_log | 50 |
| basedir | /usr/ |
| bdb_cache_size | 8388600 |
| bdb_home | /var/lib/mysql/ |
| bdb_log_buffer_size | 32768 |
| bdb_logdir | |
| bdb_max_lock | 10000 |
| bdb_shared_data | OFF |
| bdb_tmpdir | /tmp/ |
| binlog_cache_size | 32768 |
………………………………………………………………………………….
| version | 4.1.11-Debian_4-log |
| version_bdb | Sleepycat Software: Berkeley DB 4.1.24: (April 1, 2005) |
| version_comment | Source distribution |
| version_compile_machine | i386 |
| version_compile_os | pc-linux-gnu |
| wait_timeout | 28800 |
+———————————+———————————————————-+
196 rows IN SET (0.01 sec)
Configuración
/etc/mysql/my.cnf
Tablas InnoDB por defecto
[mysqld]
default-table-type=innodb
Localización
[mysqld]
language = /usr/share/mysql/spanish
Backups – Respaldo, usar comando “mysqldump”
mysqldump incluído en el paquete mysql-client
Referencia manual MySQL
Backup de todas las bases de datos:
$ mysqldump –opt –all-databases -u root -p > backup_mysql.sql
$ mysqldump –opt –all-databases -u root –password=contraseña > backup_mysql.sql
Comando -d, hace backup solamente de la estructura de las tablas
$ mysqldump –opt –all-databases -d -u root –password=contraseña > backup_mysql.sql
Otras Herramientas
mysqladmin
Para cambiar la contraseña del usuario root:
$ mysqladmin -u root password mipass
Referencias:
1 Comment »
RSS feed for comments on this post. TrackBack URL

Hola doutdex,
Felicitaciones por tu blog desde el autor de manual sobre MySQL
Saludos y enhorabuena por el blog!