bases_de_datos:mysql:administracion
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bases_de_datos:mysql:administracion [2016/12/09 15:15] – [Estructura interna] alberto | bases_de_datos:mysql:administracion [2016/12/10 12:40] (actual) – [Crear usuarios y especificar privilegios] alberto | ||
|---|---|---|---|
| Línea 10: | Línea 10: | ||
| ==== Arquitecturas de almacenamiento de tablas ==== | ==== Arquitecturas de almacenamiento de tablas ==== | ||
| Las tablas pueden estar almacenadas de diferentes formas, incluso dentro de una misma base de datos. Cada tipo de tabla, afecta en el espacio que consumen en memoria y disco, y en la velocidad de ejecución de las sentencias MySQL.\\ | Las tablas pueden estar almacenadas de diferentes formas, incluso dentro de una misma base de datos. Cada tipo de tabla, afecta en el espacio que consumen en memoria y disco, y en la velocidad de ejecución de las sentencias MySQL.\\ | ||
| + | |||
| + | Para pasar tablas de un tipo a otro, se puede hacer sin problema (siempre que se tengan los privilegios adecuados), a través de la sentencia: | ||
| + | <code mysql> | ||
| + | ALTER TABLE NombreTabla TYPE=TipoTabla; | ||
| + | </ | ||
| + | |||
| A continuación se detallan los diferentes tipos de tablas: | A continuación se detallan los diferentes tipos de tablas: | ||
| Línea 27: | Línea 33: | ||
| O a través de la utilidad // | O a través de la utilidad // | ||
| - | |||
| * **Compressed**: | * **Compressed**: | ||
| Línea 36: | Línea 41: | ||
| </ | </ | ||
| - | * **MERGE**: Estas tablas no tienen datos por si mismas, sino que hacen referencia a dos o más tablas tipo MyISAM a través de la cláusula UNION. Podemos realizar las diferentes acciones, bien a través de la tambla tipo MERGE, o de las tablas originales. Generan dos ficheros: uno con extensión .frm y otro con extensión .MRG.\\Las tablas de este tipo, deben ser idénticas en estructura. Borrar una tabla tipo MERGE, no afecta a las tablas que la conforman. | + | === MERGE === |
| - | | + | Estas tablas no tienen datos por si mismas, sino que hacen referencia a dos o más tablas tipo MyISAM a través de la cláusula UNION. Podemos realizar las diferentes acciones, bien a través de la tambla tipo MERGE, o de las tablas originales. Generan dos ficheros: uno con extensión .frm y otro con extensión .MRG.\\Las tablas de este tipo, deben ser idénticas en estructura. Borrar una tabla tipo MERGE, no afecta a las tablas que la conforman. |
| - | * **InnoDB**: Es un motor de bases de datos muy completo que ha sido embebido dentro de MySQL. Sus principales características son: | + | |
| + | === MEMORY (HEAP) | ||
| + | Se caracterizan por almacenar todos los datos en memoria. Si se reinicia __el servidor__, todos los datos se pierden (no así su estructura). Estas tablas son extremadamente rápidas, y son muy útiles para crear tablas temporales. Sólo guardan un fichero con extensión .frm que almacena la estructura de la tabla. | ||
| + | |||
| + | === InnoDB | ||
| + | Es un motor de bases de datos muy completo que ha sido embebido dentro de MySQL. Sus principales características son: | ||
| * Control de transacciones. | * Control de transacciones. | ||
| * Integridad referencial. | * Integridad referencial. | ||
| Línea 47: | Línea 57: | ||
| Por defecto, InnoDB crea un archivo de datos llamado //ibdata1// de 10MB autoextensible y dos archivos de log llamados // | Por defecto, InnoDB crea un archivo de datos llamado //ibdata1// de 10MB autoextensible y dos archivos de log llamados // | ||
| + | ===== Configuración ===== | ||
| + | Los programas que componen MySQL (mysqld, mysqladmin, etc) pueden ser configurados, | ||
| + | - Línea de comandos. | ||
| + | - Ficheros de opciones. | ||
| + | - Valores de variables de entorno. | ||
| + | ==== Configuración por línea de comandos ==== | ||
| + | Deben seguir las siguientes reglas: | ||
| + | * Siempre se introducen después del nombre del programa. | ||
| + | * La opción va precedida de un guión si se expresa de la forma corta, o de dos guiones si es la forma larga. Por ejemplo: | ||
| + | <WRAP box> | ||
| + | c: | ||
| + | c: | ||
| + | </ | ||
| + | * Si la opción va seguida de un valor, si se usa la forma larga se especifica tras el símbolo ' | ||
| + | * Algunos de los programas tienen variables que son configurables. Para configurar estas variables se utiliza la opción **-set-variable**. Por ejemplo: | ||
| + | <WRAP box> | ||
| + | c: | ||
| + | </ | ||
| + | |||
| + | Se recomienda visitar el [[http:// | ||
| + | |||
| + | ==== Configuración por ficheros de configuración ==== | ||
| + | Los ficheros de configuración sirven para que los programas carguen la misma configuración al arrancar.\\ | ||
| + | Listado de programas que aguantan ficheros de configuración: | ||
| + | |||
| + | Los programas MySQL pueden consultar más de un fichero de configuración.\\ | ||
| + | Bajo Windows, por orden de mayor a menor preferencia: | ||
| + | - WINDIR\my.ini | ||
| + | - C: | ||
| + | |||
| + | Bajo Linux, por orden de mayor a menor preferencia: | ||
| + | - / | ||
| + | - DATADIR/ | ||
| + | - ~/ | ||
| + | |||
| + | Ha tener en cuenta: | ||
| + | * La sintaxis de estos ficheros es muy similar a la indicada en el apartado anterior.\\ | ||
| + | * Las líneas en blanco se ignoran.\\ | ||
| + | * Los comentarios (línea) se indican mediante el carácter '#', | ||
| + | * **[grupo]** Cuando algo aparece entre corchetes, se refiere al nombre del programa MySQL sobre el que tendrán efecto las opciones que se muestran a continuación. El grupo [client] permite especificar opciones que se aplican de forma común a todos los programas cliente. | ||
| + | * En el caso de **set-variable = nombre_variable=valor** hay que tener en cuenta que los espacios alrededor del símbolo ' | ||
| - | Para pasar tablas de un tipo a otro, se puede hacer sin problema (siempre que se tengan los privilegios adecuados), a través de la sentencia: | ||
| - | <code mysql> | ||
| - | ALTER TABLE NombreTabla TYPE=TipoTabla; | ||
| - | </ | ||
| - | ===== Configuración ===== | ||
| ===== Administración de usuarios ===== | ===== Administración de usuarios ===== | ||
| + | El administrador del Sistema MySQL, puede especificar: | ||
| + | * Qué usuarios pueden conectarse al servidor (usuario). | ||
| + | * Desde dónde pueden conectarse (host). | ||
| + | * Qué pueden hacer mientras están conectados (privilegios). | ||
| + | |||
| + | El " | ||
| + | * **user**: Usuarios que pueden conectar con el servidor. | ||
| + | * **db**: Privilegios a nivel base de datos. | ||
| + | * **tables_priv**: | ||
| + | * **columns_priv**: | ||
| + | |||
| + | Aunque se puden manejar los privilegios con la manipulación de estas cuatro tablas, es más cómodo usar las sentencias GRANT (crear usuarios y especificar privilegios) y REVOKE (eliminar privilegios). | ||
| + | |||
| + | ==== Crear usuarios y especificar privilegios ==== | ||
| + | Sintaxis de la sentencia GRANT: | ||
| + | <WRAP box> | ||
| + | GRANT privilegios (columnas) | ||
| + | ON nivelPrivilegio | ||
| + | TO usuario@host IDENTIFIED BY " | ||
| + | [WITH GRANT OPTION]; | ||
| + | </ | ||
| + | |||
| + | Vamos a ver qué significa cada cláusula de esta sentencia: | ||
| + | * **Privilegios**: | ||
| + | * // | ||
| + | |||
| + | ^ Privilegio | ||
| + | | ALTER | Permite alterar tablas e índices | ||
| + | | CREATE | ||
| + | | CREATE TEMPORARY TABLES | Permite crear tablas temporales (CREATE TEMPORARY TABLE) | | ||
| + | | DELETE | ||
| + | | DROP | Permite eliminar bases de datos y tablas | ||
| + | | INDEX | Permite crear y eliminar índices asociados a tablas | ||
| + | | INSERT | ||
| + | | SELECT | ||
| + | | UPDATE | ||
| + | |||
| + | * // | ||
| + | |||
| + | ^ Privilegio ^ Descripción ^ | ||
| + | | FILE | Permite leer y escribir archivos en el servidor (SELECT ... INTO OUTFILE y LOAD DATA INFILE) | | ||
| + | | PROCESS | Permite ver información sobre los procesos abiertos en el servidor (SHOW FULL PROCESSLIST) | | ||
| + | | RELOAD | Permite solicitar al servidor que cargue de nuevo en memoria las tablas del diccionario de datos(FLUSH)| | ||
| + | | REPLICATION CLIENT | Permite al usuario preguntar dónde está el servidor esclavo o maestro | | ||
| + | | REPLICATION SLAVE | Permiso necesario para que el usuario pueda acceder al fichero //binary log// del maestro desde el esclavo | ||
| + | | SHUTDOWN | Permite cerrar el servidor (mysqladmin shutdown) | | ||
| + | |||
| + | |||
| + | * // | ||
| + | |||
| + | ^ Privilegio ^ Descripción ^ | ||
| + | | ALL [PRIVILEGES] | Permite agrupar todos los privilegios en uno solo | | ||
| + | | USAGE | Es un privilegio especial que significa " | ||
| + | |||
| + | |||
| + | * **Nivel de privilegio**: | ||
| + | - //Nivel global//: Se aplican privilegios a todas las bases de datos y tablas del servidor. La forma de indicarlo será: GRANT privilegios ON *.* ... | ||
| + | - //Nivel base de datos//: Se aplican privilegios sobre todas las tablas de la base de datos nombrada: GRANT privilegios ON NombreBaseDatos.* ... | ||
| + | - //Nivel de tabla//: Se aplican privilegios sobre todas las columnas de la tabla especificada: | ||
| + | - // | ||
| + | |||
| + | * **Usuario@host**: | ||
| + | * **Contraseña**: | ||
| + | * **Cláusula WITH GRANT OPTION**: Es opcional, y significa que el usuario tiene la capacidad de transmitir sus privilegios a otros usuarios. | ||
| + | |||
| + | ==== Eliminar privilegios ==== | ||
| + | Sintaxis de la sentencia REVOKE: | ||
| + | <WRAP box> | ||
| + | REVOKE privilegios (columnas) | ||
| + | ON nivelPrivilegio | ||
| + | FROM usuario@host | ||
| + | </ | ||
| + | |||
| + | Los privilegios no tienen porqué coincidir con todos los que tiene el usuario, ya que es posible eliminar sólo la parte que interese.\\ Son los mismos privilegios y nivel de privilegio que se especificaron en el apartado anterior.\\ | ||
| + | |||
| + | Para eliminar de golpe todos los privilegios de uno o varios usuarios, se puede usar la forma: | ||
| + | <WRAP box> | ||
| + | REVOKE ALL PRIVILEGES, GRANT OPTION FROM usuario@host [, | ||
| + | </ | ||
| + | |||
| + | Eliminar todos los privilegios no supone eliminar al usuario, ya que éste aún permanece en un registro de la tabla // | ||
| + | |||
| + | ==== Eliminar una cuenta de usuario ==== | ||
| + | <WRAP box> | ||
| + | DROP USER ' | ||
| + | </ | ||
| + | |||
| + | Para poder eliminar a un usuario, anteriormente le han tenido que haber eliminado todos los privilegios.\\ | ||
| + | |||
| + | === Ver privilegios === | ||
| + | Pueden verse los privilegios de un usuario con la sentencia SHOW GRANTS: | ||
| + | <WRAP box> | ||
| + | SHOW GRANTS FOR ' | ||
| + | </ | ||
| ===== Índices ===== | ===== Índices ===== | ||
| ===== Copias de seguridad ===== | ===== Copias de seguridad ===== | ||
| ===== Ficheros Logs ===== | ===== Ficheros Logs ===== | ||
| ===== Replicación ===== | ===== Replicación ===== | ||
bases_de_datos/mysql/administracion.1481292925.txt.gz · Última modificación: por alberto
