GNU/Linux >> Tutoriales Linux >  >> Panels >> Webmin

Servidor de base de datos MySQL

En esta página la base de datos MySQL y se explica el módulo de Webmin que lo gestiona, y se enumeran los pasos a seguir para crear bases de datos, tablas y usuarios.

Ver Introducción a MySQL

Este módulo le permite crear bases de datos, tablas y campos, editar registros y administrar usuarios de MySQL a través de una sencilla interfaz web. Su ícono se puede encontrar en la categoría Servidores, y cuando hace clic en él, la página principal del módulo mostrará una tabla de íconos para las bases de datos existentes, como se muestra en la siguiente captura de pantalla (suponiendo que MySQL esté instalado y ejecutándose).

La página principal del módulo MySQL Database Server, justo después de la instalación de mariadb-server y ejecutando el recomendado /usr/bin/mysql_secure_installation para eliminar las brechas de seguridad

Si el servidor de la base de datos se está ejecutando pero Webmin no conoce la contraseña correcta para iniciar sesión, la página principal mostrará un formulario de *Inicio de sesión de MySQL* en su lugar. Debe ingresar el nombre de usuario de administración en el campo Login' (generalmente root) y la contraseña correspondiente en el campo Contraseña campo. Aunque es posible ingresar el nombre de usuario y la contraseña para cualquier usuario de MySQL, los usuarios que no sean root no pueden realizar tareas como crear bases de datos y tablas, por lo que el módulo tampoco podrá hacerlo.

De forma predeterminada, el módulo está configurado para iniciar sesión con el nombre de usuario y la contraseña que utiliza el paquete MySQL para su distribución de forma predeterminada. Solo si lo ha cambiado manualmente o a través de Webmin, el Inicio de sesión de MySQL aparece la página.

Si el servidor de la base de datos no está instalado en su sistema, la página principal mostrará un mensaje de error como *El programa cliente MySQL /usr/bin/mysql no se encontró en su sistema*. Busque en su CD de distribución o sitio web todos los paquetes relacionados con MySQL e instálelos usando el módulo Paquetes de software. A menudo hay varios, llamados algo así como mysql, mysql-client, mysql-server y mysql-devel. Cada distribución de Linux parece usar un conjunto diferente de paquetes, así que asegúrese de instalarlos todos.

En FreeBSD y NetBSD, el módulo espera que se instale el paquete MySQL para esos sistemas operativos. En otras variantes de Unix, se supone que ha compilado e instalado MySQL desde la distribución del código fuente, disponible en http://www.mysql.com/.

Si el módulo se queja de que no puede encontrar el programa mysql aunque lo tenga instalado, deberá ajustar las rutas que utiliza. Esto puede suceder si lo instaló desde la fuente en lugar de usar el paquete que viene con su distribución de Linux.

El módulo MySQL usa comandos SQL para realizar acciones como crear tablas, agregar campos y editar registros. Para ejecutar estos comandos, Webmin debe conectarse al servidor de la base de datos, lo que se puede hacer de dos maneras. Puede ejecutar el comando mysql con los parámetros correctos y analizar su salida, o usar la biblioteca Perl DBI para conectarse directamente.

El primer método siempre está disponible, porque el comando mysql siempre está instalado cuando el servidor de la base de datos lo está. Sin embargo, no es totalmente confiable ya que ciertos tipos de datos de tablas producen resultados que no siempre se pueden analizar. Por esta razón, debe instalar los módulos DBI y DBD::mysql Perl. Si falta alguno, se mostrará un mensaje en la parte inferior de la página principal que le pedirá que instale uno o ambos haciendo clic en un enlace. Esto lo llevará a una página en el módulo Módulos de Perl (tratado en el capítulo 27) donde DBI y/o DBD::mysql se descargan e instalan por usted.

Contenido

Crear una nueva base de datos

La página de edición de la base de datos

Cuando MySQL se instala por primera vez, se crea una base de datos llamada mysql que contiene tablas relacionadas con la autenticación y el control de acceso. Si desea almacenar sus propios datos, es mejor crear su propia base de datos para agregar tablas en lugar de jugar con la base de datos mysql. Para ello, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en Crear una nueva base de datos enlace encima o debajo de la tabla de iconos de bases de datos existentes. Esto lo llevará a un formulario para ingresar los detalles de la nueva base de datos.
  2. Introduzca un nombre para la nueva base de datos en Nombre de la base de datos campo. Los nombres deben contener solo letras y números, sin espacios.
  3. Es posible usar el formulario para crear una tabla inicial para la nueva base de datos. Sin embargo, puede agregar uno tan fácilmente después de crearlo como Crear una nueva tabla sección explica.
  4. Haga clic en Crear botón en la parte inferior del formulario para crear la base de datos. Volverá a la página principal del módulo, que ahora incluirá un nuevo ícono de base de datos.

Crear una nueva tabla

La página de edición de tablas

Las tablas se pueden agregar a bases de datos existentes o recién creadas en cualquier momento. Cada tabla tiene uno o más campos, cada uno de los cuales tiene un tipo (como entero, decimal o texto) y un tamaño. Los campos también se pueden indexar para acelerar las consultas SQL que buscan registros en función de los valores de esa columna. Para agregar una nueva tabla a una base de datos, los pasos a seguir son :

  1. En la página principal del módulo, haga clic en el icono de la base de datos. Esto lo llevará a la página de edición de la base de datos que se muestra en la captura de pantalla a continuación, que contiene un ícono para cada tabla existente y botones para realizar varias acciones.
  2. Ingrese la cantidad de campos que desea que tenga su nueva tabla en Campos cuadro de texto junto a Crear una nueva tabla y luego haga clic en el botón. Esto abre un formulario para ingresar los detalles de la nueva tabla y sus campos iniciales.
  3. Ingrese un nombre para esta tabla en el Nombre de la tabla campo. Debe constar de letras, números y el carácter _, y debe ser único dentro de esta base de datos.
  4. Para que sus campos se copien de una tabla existente, selecciónelo en Copiar campos de la tabla menú. Cualquier campo adicional que ingrese a continuación en los Campos iniciales la tabla se agregará después de la copiada.
  5. El tipo de tabla El menú se puede utilizar para elegir un tipo de almacenamiento diferente para esta tabla. Los tipos más utilizados son:
    MyISAM
    El tipo de tabla estándar para las versiones 3.23 y superiores de MySQL. En los sistemas operativos que admiten archivos de gran tamaño, las tablas de este tamaño pueden tener un tamaño aproximado de 2 000 000 000 GB. Los archivos de tabla son independientes del sistema operativo, las claves pueden tener una longitud de 500 bytes y se pueden usar 32 columnas de claves en una sola tabla.
    InnoDB
    Un tipo de tabla superior que admite transacciones, grandes cantidades de datos y se ejecuta mucho más rápido que MyISAM.
    ISAM
    El antiguo tipo de tabla MySQL estándar, ahora reemplazado por MyISAM. Un archivo de tabla ISAM solo puede tener un tamaño de 4 GB, las claves solo pueden tener una longitud de 256 bytes y una tabla puede tener como máximo 16 columnas de claves.
    Montón
    Los datos en las tablas Heap se almacenan solo en la memoria. Esto los hace muy rápidos, pero útiles solo para datos temporales, ya que el contenido de la tabla se perderá si MySQL se cierra. Si selecciona el Predeterminado o si el tipo elegido no es compatible con MySQL en su sistema, se utilizará el tipo MyISAM.
  6. Los campos iniciales La sección es para ingresar los detalles de los campos reales que contendrá su nueva tabla. Cada fila que rellena define un único campo, en función de los valores que introduzca en cada uno de los siguientes encabezados :
    Nombre de campo
    Un nombre único para este campo, que debe constar de letras, números y el carácter _. No es una buena idea elegir un nombre que sea igual a una palabra reservada de SQL, como seleccionar, actualizar o indexar.
    Tipo de datos
    Desde este menú debe seleccionar el tipo de datos en este campo. Los más comunes son varchar (para cadenas de texto de longitud variable) e int (para números enteros). Ver los Tipos de campo sección a continuación para obtener una lista completa de los tipos admitidos.
    Ancho de letra
    El tamaño de los datos que se pueden almacenar en este campo. Esto tiene diferentes significados según el tipo; por ejemplo, para un campo varchar, el ancho es la longitud máxima del texto, pero para un campo int es el número máximo de dígitos decimales. Una vez más, los Tipos de campo La sección de este capítulo cubre los anchos con más detalle. Si deja este cuadro de texto en blanco para un campo, se utilizará el ancho predeterminado. Muchos tipos (como blob, texto y fecha) tienen tamaños fijos y, por lo tanto, no se debe ingresar ningún ancho.
    ¿Clave principal?
    Si esta casilla está marcada, este campo será parte de la clave principal de la tabla. MySQL indexa los campos clave, de modo que las sentencias SQL que hacen referencia a todos ellos en la cláusula where se ejecutan más rápido. Sin embargo, dos registros no pueden tener los mismos valores en sus campos de clave principal. Tradicionalmente, el primer campo de una tabla es la clave. No se pueden usar todos los tipos; por lo general, un campo de clave principal es un int o varchar. Todas las tablas deben tener una clave principal, para que los datos en ellas se puedan editar en Webmin.
    ¿Aumento automático?
    Si se marca esta opción para un campo numérico, MySQL insertará automáticamente un número uno más alto que el máximo en la tabla siempre que se agregue un registro (a menos que la declaración de creación de registro especifique un valor explícitamente). Esto puede ser útil para la generación automática de números de identificación y, a menudo, está habilitado para campos de clave principal.
  7. Una vez que haya ingresado todos los campos, presione Crear botón en la parte inferior del formulario. Si la tabla no se puede crear por algún motivo, se mostrará el mensaje de error de SQL de MySQL. Esto puede ocurrir si un nombre de campo no es válido o si el ancho de un tipo no tiene sentido para un tipo. Si esto sucede, utilice el botón Atrás de su navegador para volver al formulario y solucionar los problemas. Una vez que la tabla se haya creado correctamente, volverá a la página de edición de la base de datos, que ahora incluirá un nuevo icono de tabla.

Agregar y editar campos

Modificar campo

Se pueden agregar nuevos campos a una tabla y los existentes pueden cambiarse o eliminarse. Agregar un campo no representa ningún riesgo para los datos existentes, pero cambiar el tipo o el tamaño de uno sí puede hacerlo, y eliminar un campo hará que se pierdan los datos que contiene. Para agregar un nuevo campo, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en el ícono de la base de datos que contiene la tabla y luego en el ícono de la tabla. Esto abrirá la página que se muestra en la imagen a continuación, que enumera los nombres, tipos y otros detalles de todos los campos existentes.
  2. Seleccione el tipo para el nuevo campo en el menú junto al botón *Agregar campo de tipo* antes de hacer clic en él. Ver los Tipos de campo sección a continuación para obtener una lista de los tipos y sus propósitos.
  3. En el formulario de adición de campo que aparece, ingrese un nombre único para este campo en Nombre de campo caja de texto. Dos campos en la misma tabla no pueden tener el mismo nombre, y solo se pueden usar letras, números y _.
  4. Si está agregando un campo char o varchar, debe ingresar un número máximo de caracteres en el Ancho del tipo caja de texto. Si agrega un campo flotante, doble o decimal, debe ingresar dos números en Ancho y decimales cajas de texto. El primero es el número total de dígitos que puede contener un valor, y el segundo el número de dígitos a la derecha del punto decimal. Para números negativos, el signo menos cuenta como un dígito, por lo que un campo con Ancho y decimales configurado en 5 y 2 podría almacenar números de 99.99 a 999.99. Para los campos de fecha, fecha y hora, hora, blob y texto, no hay ninguna entrada de ancho, ya que estos tipos tienen tamaños fijos o ilimitados. Para los campos de enumeración y configuración, debe ingresar una lista de posibles valores en el cuadro de texto *Valores enumerados*. Para todos los demás tipos de campo (como int), el Ancho de tipo se puede configurar como Predeterminado para que el campo use el tamaño predeterminado para el tipo elegido, o se puede ingresar un ancho. Para campos int, este es el número máximo de dígitos que puede contener un valor en este campo.
  5. Para los tipos de campos de enteros (como int y smallint), los botones de radio *Opciones de tipo* le permiten elegir si los valores de este campo deben rellenarse con ceros a la izquierda (el botón Rellenar con ceros opción), o si deben estar sin firmar (la opción Sin firmar opción). Si Ninguno está seleccionado, los valores se firmarán y no se agregarán ceros adicionales. Para campos flotantes, dobles y decimales, las mismas opciones de tipo también se muestran pero sin Sin firmar opción. Los campos de este tipo siempre están firmados. Para los campos char y varchar, las opciones de tipo tienen dos opciones diferentes:sensible a mayúsculas y minúsculas y no distingue entre mayúsculas y minúsculas . Si se selecciona insensible, las consultas SQL que coincidan con los valores de este campo ignorarán las diferencias entre mayúsculas y minúsculas.
  6. Para evitar que se inserten valores SQL NULL en este campo, cambie ¿Permitir nulo? entrada a No . Esto puede ser útil si cada registro debe tener un valor para este campo y debe seleccionarse si este campo formará parte de la clave principal de la tabla.
  7. Para que se inserte un valor predeterminado cuando se agrega un registro a la tabla y no se especifica ningún valor para este campo, complete el Valor predeterminado caja de texto. Naturalmente, el valor debe ser del tipo correcto para el campo. Si su tabla ya contiene algunas filas, sus valores para este campo se establecerán en lo que ingrese aquí cuando se agregue el nuevo campo.
  8. Si este campo va a ser la clave para la tabla, cambie ¿Parte de la clave principal? selección a . Más de un campo forma parte de la clave, en cuyo caso es una combinación de todos ellos.
  9. Finalmente, haga clic en Crear . Si no hay errores en sus entradas, el campo se agregará a la tabla y volverá a la página de edición de la tabla.

Los campos recién creados o existentes también se pueden editar siguiendo los pasos a continuación. Sin embargo, realizar cambios en el tipo de un campo o reducir su tamaño puede provocar la pérdida de datos si los valores antiguos no son compatibles con el nuevo tipo. Por ejemplo, convertir un varchar en un int hará que se pierdan todos los valores no numéricos; sin embargo, convertir un int en un varchar generalmente es seguro siempre que el nuevo tamaño sea lo suficientemente grande.

  1. En la página principal del módulo, haga clic en el ícono de la base de datos que contiene la tabla y luego en el ícono de la tabla. Esto abrirá la página que se muestra en la captura de pantalla anterior, que enumera los nombres, tipos y otros detalles de todos los campos existentes.
  2. Haga clic en el nombre del campo que desea modificar para ir al formulario de edición de campos.
  3. Para cambiar el nombre del campo, edite el Nombre del campo caja de texto.
  4. Para cambiar el tipo de campo, seleccione uno nuevo en el menú *Tipo de datos*. Como se explicó anteriormente, esto debe hacerse con cuidado.
  5. Según el tipo actual, se mostrarán diferentes entradas para editar su tamaño. Estos son los mismos que se explican en el paso 4 de las instrucciones de creación de campos anteriores. Aumentar el tamaño de un campo no dañará ningún dato que contenga, pero disminuirlo hará que los valores se trunquen si son más largos que el nuevo tamaño.
  6. Las opciones de tipo , ¿Permitir nulos? , Valor predeterminado y ¿Parte de la clave principal? las entradas tienen los mismos significados aquí que en los pasos de creación de campos. Cámbielos si desea ajustar estas opciones para el campo existente.
  7. Cuando haya terminado, presione Guardar botón en la parte inferior del formulario. El campo se actualizará inmediatamente y los datos que contenga se modificarán o truncarán según corresponda.

Un campo existente se puede eliminar haciendo clic en Eliminar en el formulario de edición de campos en lugar de Guardar . Cualquier dato que contenga será inmediatamente eliminado para siempre. Naturalmente, no puede eliminar el último campo de una tabla.

Tipos de campo

MySQL admite la mayoría de los mismos tipos de campo que otras bases de datos SQL. La mejor fuente de información sobre tipos es la documentación oficial de MySQL, en http://dev.mysql.com/doc/refman/4.1/en/data-types.html (para MySQL 3 y 4), o http://www .mysql.org/doc/refman/5.0/en/data-types.html (para MySQL 5).

Las versiones más nuevas de MySQL pueden introducir más tipos, pero aún debería poder editar los datos en los campos de tipos no admitidos.

Ver y editar el contenido de la tabla

El módulo MySQL le permite ver el contenido de cualquier tabla en cualquier base de datos. Las tablas que tienen una clave principal pueden tener sus registros modificados o eliminados y también se pueden agregar otros nuevos. Desafortunadamente, no hay forma de editar el contenido de una tabla sin una clave, ya que el módulo necesita alguna forma de identificar registros específicos. Sin embargo, todas las tablas en una base de datos deberían tener una.

Para ver el contenido de una tabla, siga estos pasos:

  1. En la página principal, haga clic en el ícono de la base de datos que contiene la tabla y luego en el ícono de la tabla misma.
  2. En el formulario de edición de tablas, haga clic en Ver datos botón en la parte inferior. Esto lo llevará a una página que contiene una tabla de las primeras 20 filas de la tabla.
  3. Si la tabla contiene más filas de las que se pueden mostrar en una página, el inicio y el final del rango visible y el número total de filas se mostrarán en la parte superior. Junto a él hay flechas izquierda y derecha para pasar a los 20 registros siguientes o anteriores.
  4. Para tablas grandes, también se muestra un formulario de búsqueda en la parte inferior de la página. Para usarlo, seleccione un nombre de campo del primer menú, un tipo de comparación del segundo e ingrese un valor para buscar en el cuadro de texto final. Cuando la Buscar se hace clic en el botón , solo se mostrarán las filas para las que coincida el campo elegido. Para volver a ver todos los registros, haga clic en Restablecer búsqueda enlace que ahora aparece encima de la tabla. El contiene el tipo de comparación busca registros en los que el campo contiene el texto introducido, mientras que el coincide type busca registros para los cuales el valor del campo coincide con un patrón SQL como se usa en una cláusula similar. En tal patrón, % coincide con cualquier cadena de caracteres y _ coincide con cualquier carácter individual, al igual que * y ? hacer en el indicador de shell.
  5. Al ver una tabla grande, un botón con la etiqueta Saltar a también se muestra en la parte inferior de la página. Si se ingresa un número en el campo adyacente y se hace clic en el botón, la pantalla se moverá inmediatamente a esa fila.

Si la tabla tiene una clave principal, esta misma página también se puede utilizar para editar, eliminar o agregar registros. Los registros para editar primero deben seleccionarse usando las casillas de verificación a la derecha de cada fila, o Seleccionar todo y Invertir selección Enlaces. Cuando haga clic en el botón *Editar filas seleccionadas*, la página volverá a mostrarse con los valores de todos los registros seleccionados en cuadros de texto. Realice los cambios que desee y haga clic en Guardar botón en la parte inferior de la página para actualizar la base de datos. O presiona Cancelar si desea dejar de editar sin guardar sus modificaciones.

Para eliminar registros, selecciónelos usando las mismas casillas de verificación y enlaces de selección, y haga clic en Eliminar filas seleccionadas botón. Los registros elegidos se eliminarán inmediatamente de la base de datos sin confirmación adicional.

Para agregar un nuevo registro, presione Agregar fila botón debajo de la mesa. Aparecerá una fila adicional que contiene cuadros de texto vacíos para que ingrese nuevos detalles. Al hacer clic en Guardar agregará el nuevo registro a la tabla y moverá la pantalla para que pueda ver la nueva fila. Alternativamente, puede hacer clic en Cancelar si cambia de opinión acerca de agregar un registro.

Normalmente, los registros se editan o agregan en campos de texto que aparecen en la tabla en las columnas correspondientes. Sin embargo, si está editando una tabla que contiene un blob o un campo de texto, o si la opción de configuración del módulo *Usar fila vertical para agregar interfaz* está habilitada, se usa un diseño diferente. En cambio, los cuadros de texto para los campos se enumeran en un cuadro separado dentro o debajo de la tabla, con etiquetas de nombre de campo a la derecha. Para los campos de texto o blob, se muestra un cuadro de texto para que pueda ingresar varias líneas de texto si es necesario.

Eliminar tablas y bases de datos

Cuando se elimina una tabla de una base de datos, se perderán todos los registros y campos que contiene. Puede eliminar cualquier tabla, aunque eliminarlas de la base de datos mysql es una mala idea, ya que contienen información importante de control de acceso de MySQL. Para eliminar uno, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en el ícono de la base de datos de la que desea eliminar la tabla y luego en el ícono de la tabla misma.
  2. Haga clic en Soltar tabla botón debajo de la lista de campos. Esto lo llevará a una página de confirmación que le preguntará si está seguro y le indicará cuántos registros se eliminarán.
  3. Para continuar, haga clic en Soltar tabla botón de nuevo. Una vez que se haya eliminado, volverá a la lista de tablas supervivientes en la base de datos.

También es posible eliminar una base de datos completa y todas las tablas y registros que contiene. Se puede eliminar cualquier base de datos, pero eliminar la base de datos mysql es una muy mala idea. Como de costumbre, a menos que haya realizado una copia de seguridad, no hay forma de deshacer la eliminación.

Suponiendo que realmente desea eliminar una base de datos, siga estos pasos:

  1. En la página principal, haga clic en el icono de la base de datos que desea eliminar.
  2. Presione Soltar base de datos botón debajo de la lista de tablas. Se mostrará una página de confirmación que le indicará cuántas tablas y registros se perderán si continúa.
  3. Para continuar con la eliminación, haga clic en Soltar base de datos y volverá a la página principal del módulo cuando haya terminado.
  4. Como alternativa, puede optar por eliminar todas las tablas y sus registros haciendo clic en Simplemente eliminar todas las tablas en cambio. La propia base de datos quedará vacía.

Ejecución de comandos SQL

El módulo MySQL también proporciona una interfaz simple para ejecutar comandos SQL en una base de datos y mostrar su salida. Los pasos para usarlo son:

  1. En la página principal, haga clic en el icono de la base de datos en la que desea ejecutar los comandos.
  2. Haga clic en Ejecutar SQL debajo de la lista de iconos de la tabla. Esto lo llevará a una página para ingresar comandos SQL, ejecutar archivos de comandos y cargar datos en la base de datos.
  3. Ingrese cualquier comando SQL en el cuadro de texto en la parte superior de la página y presione Ejecutar botón. Si hubo un error en su sintaxis SQL o no se puede ejecutar el comando, se mostrará el mensaje de error de MySQL. De lo contrario, se mostrará una tabla de resultados del SQL (si corresponde). Solo las declaraciones SELECT producen resultados; UPDATE, INSERT y otros comandos que modifican registros no lo hacen.
  4. Cuando haya terminado de ver los resultados, utilice el formulario *Volver a ejecutar SQL* para volver al formulario.
  5. Cada comando que se ejecuta correctamente se agrega a un historial de la base de datos. Puede volver a ejecutar un comando SQL anterior dejando el cuadro de texto vacío y seleccionándolo del menú a continuación, luego presionando Ejecutar . Para borrar el historial de comandos, haga clic en Borrar historial botón en su lugar. Esto puede ser útil si se llena de instrucciones antiguas que no necesita reutilizar.

La misma página se puede utilizar para ejecutar varios comandos desde un archivo de texto y mostrar su salida. Debido a que el proceso es exactamente el mismo que restaurar una copia de seguridad, se explica en la parte de restauración de Copia de seguridad y restauración de una base de datos sección a continuación.

Copia de seguridad y restauración de una base de datos

MySQL respalda todas las bases de datos

Si una de sus bases de datos contiene información importante, se debe hacer una copia de seguridad con regularidad en caso de que una falla del disco o un error de SQL provoque la pérdida de datos. También es una buena idea crear una copia de seguridad antes de realizar alguna operación potencialmente riesgosa, como cambiar el tipo de un campo o ejecutar una declaración SQL compleja que modifica muchos registros.

Para utilizar el módulo para realizar una copia de seguridad, los pasos a seguir son:

  1. En la página principal, haga clic en el icono de la base de datos que desea respaldar.
  2. Haga clic en Base de datos de respaldo botón debajo de la lista de tablas. Esto lo llevará a un formulario para ingresar el destino de la copia de seguridad y las opciones.
  3. En la Copia de seguridad en archivo campo, ingrese la ruta completa del archivo en el que se debe escribir la copia de seguridad, como /tmp/backup.sql . Si el archivo ya existe, se sobrescribirá.
  4. Para restringir la copia de seguridad a solo algunos registros, anule la selección de la opción Todas las filas' para el campo *Solo las filas de copia de seguridad que coincidan con la cláusula where* e ingrese una cláusula SQL WHERE en el campo adyacente, por ejemplo foo ='barra . Esto solo funciona si la cláusula es válida para todas las tablas de la base de datos, por lo que en el ejemplo, todas las tablas deberían tener un foo campo.
  5. Si ¿Agregar instrucciones de la tabla de eliminación a la copia de seguridad? el campo está establecido en , la copia de seguridad incluirá instrucciones SQL para eliminar las tablas existentes del mismo nombre al restaurar. Esto significa que si lo restaura en otro sistema, los datos de esas tablas se reemplazarán con los nuevos datos de la copia de seguridad. Si No está seleccionado, los datos restaurados se agregarán a los que ya existen. La mejor opción realmente depende de lo que está tratando de hacer. Para una copia de seguridad normal, debe seleccionar para que cualquier dato corrupto o conflictivo se elimine cuando se restaure la copia de seguridad. Sin embargo, si está transfiriendo registros a otro sistema o base de datos No debe seleccionarse en su lugar para que los registros existentes en la tabla de destino no se pierdan.
  6. Para hacer la copia de seguridad, presione Copia de seguridad ahora en la parte inferior del formulario, y se mostrará una página que muestra su éxito o fracaso.

Los archivos de copia de seguridad de MySQL son, de hecho, solo listas de instrucciones SQL CREATE TABLE e INSERT que, cuando se ejecutan, restauran la base de datos al estado en el que se encontraba cuando se realizó la copia de seguridad. Aunque esto usa más espacio en disco que un formato binario más comprimido, le permite ver y modificar fácilmente el archivo si lo desea. También significa que un archivo de respaldo se puede usar en un sistema con una arquitectura diferente, ya que el archivo contiene solo texto ASCII.

Si tiene una base de datos que se utiliza para un propósito de producción importante, se debe realizar una copia de seguridad con regularidad, como una vez al día. En lugar de seguir las instrucciones anteriores todos los días, puede usar el módulo Trabajos cron programados (cubierto en el capítulo 10) para crear un trabajo que haga la copia de seguridad por usted. Para averiguar qué comando ejecutar, use las instrucciones anteriores para hacer una copia de seguridad primero y luego visite el módulo Registro de acciones de Webmin (cubierto en el capítulo 54) para ver el comando que usó.

Una vez que se ha creado un archivo de copia de seguridad, se puede restaurar en el mismo sistema o en otro servidor que ejecute MySQL. Dependiendo de lo que ¿Agregar sentencias de tablas desplegables a la copia de seguridad? se configuró en el momento de la copia de seguridad, se puede eliminar el contenido de cualquier tabla existente con los mismos nombres que las de la copia de seguridad. Por lo tanto, generalmente solo debe restaurar si las tablas no existen o contienen datos obsoletos o no válidos que desea sobrescribir.

Debido a que un archivo de copia de seguridad es solo una lista de declaraciones SQL, el proceso de restauración solo implica ejecutar todos los comandos en el archivo. Esto significa que también puede seguir estos mismos pasos para ejecutar un archivo de sus propios comandos:

  1. En la página principal del módulo, haga clic en el icono de la base de datos en la que se debe restaurar la copia de seguridad.
  2. Haga clic en Ejecutar SQL y desplácese hacia abajo hasta la sección *Seleccione el archivo de comandos SQL para ejecutar en la base de datos*.
  3. Si el archivo de respaldo está en el sistema que ejecuta MySQL y Webmin, elija Desde el archivo local e ingrese la ruta completa al archivo en el campo de texto adyacente. Si la copia de seguridad está en la PC en la que se ejecuta su navegador, elija *Desde el archivo cargado* y utilice Examinar botón para seleccionar el archivo de copia de seguridad.
  4. Presiona Ejecutar para restaurar la copia de seguridad o ejecutar los comandos SQL en el archivo. Se mostrará una página que enumera todos los resultados de MySQL a medida que avanza la ejecución. Generalmente no habrá ninguno a menos que ocurra un error o el archivo contenga instrucciones SELECT.

Gestionar usuarios de MySQL

Permisos de usuario de MySQL

Su servidor de base de datos MySQL requiere que todos los clientes se autentiquen con un nombre de usuario y contraseña antes de que puedan ejecutar comandos SQL. Tiene sus propias tablas de usuarios, contraseñas y permisos que se consultan cuando un cliente intenta iniciar sesión, en lugar de los archivos de usuario de Unix /etc/passwd y /etc/shadow. Se pueden definir permisos detallados para cada usuario, con el fin de limitar los tipos de instrucciones SQL que puede usar, los hosts de clientes desde los que puede conectarse y las bases de datos, tablas y campos que puede modificar.

Por lo general, después de instalar MySQL por primera vez, solo el usuario root puede iniciar sesión. Este usuario tendrá permisos para acceder a todas las bases de datos y tablas y realizar todas las acciones, por lo que generalmente se usa solo con fines administrativos. Si desea escribir una aplicación que use una base de datos, es una buena idea crear otro usuario para ese propósito y configurar la aplicación para iniciar sesión como ese usuario.

La instalación estándar de MySQL también crea un Anónimo usuario sin contraseña y acceso a bases de datos a partir de prueba. Este usuario especial se utiliza para cualquier intento de inicio de sesión para el que no se encuentre ningún otro usuario coincidente. Los usuarios anónimos se explican con más detalle a continuación.

Crear usuario

Para agregar un usuario, los pasos a seguir son:

  1. En la página principal del módulo, haga clic en Permisos de usuario icono. Esto lo llevará a una página que enumera los usuarios existentes, como se muestra en la siguiente captura de pantalla.
  2. Haga clic en el enlace Crear un nuevo usuario encima o debajo de la tabla para ir al formulario de creación de usuarios.
  3. En el Nombre de usuario seleccione el segundo botón de radio e ingrese un nombre para este usuario. Aunque es posible crear varias entradas de usuario con el mismo nombre, como se explica más adelante, esta nueva debe ser única.
  4. Suponiendo que desea que el usuario tenga una contraseña, cambie la Contraseña campo para Establecer en e introdúzcalo en el campo adyacente. Si elige Ninguno , entonces no es necesario proporcionar una contraseña y se rechazarán los intentos de iniciar sesión con una contraseña.
  5. Para permitir que este usuario inicie sesión solo desde un host específico, seleccione el segundo botón de radio en Hosts e ingrese un nombre de host en el cuadro de texto. El nombre de host debe ser el mismo que el devuelto por una búsqueda inversa de la dirección IP del cliente, que casi siempre será un nombre de host completo como pc.example.com en lugar de solo servidor . Puede ingresar una dirección IP en su lugar, o un patrón SQL de nombre de host o dirección IP como %.example.com . Para permitir que un usuario se conecte solo desde el mismo sistema en el que se ejecuta el servidor de la base de datos, ingrese localhost como anfitrión. Si Alguno está seleccionado, este usuario podrá conectarse desde cualquier host. Tenga cuidado al crear un usuario que tiene un host especificado:si intenta conectarse desde otro lugar y existe un usuario anónimo con un host coincidente, ¡en su lugar, iniciará sesión como usuario anónimo!
  6. En los Permisos lista, seleccione las entradas para las acciones que desea que el usuario pueda realizar. For an application user, being able to select, insert, update and delete records is usually enough. Un-trusted users should never be given permissions beyond Drop tables , as that would allow him to harm the database, access arbitrary files or enhance his own permissions. If a user does not have any permissions at all, he will be unable to connect unless some have been granted for a specific database or host (as explained in the next section).
  7. To create the user, click the Save botón en la parte inferior de la página. The new MySQL login will be usable immediately, and will have access to all databases and tables with the permissions specified in step 6. See the next section in this chapter for information on how to restrict a user to only certain databases or tables.

When a client tries to login, MySQL searches for the first matching user and host in the list of users. The server always checks entries with specific hostnames before those that allow any host, and Anonymous user entries before those for a specific user. This means that a user may end up with the Anonymous permissions even though he is in the user list with greater privileges. Due to the confusion this can cause, I recommend deleting all anonymous user entries unless you fully understand their effects.

It is possible and even useful to have multiple entries for the same user in the list, as long as they have different hostnames. For example, if you want to allow the user fred to login from only clients server.example.com and www.foo.com , you would need to create two entries from fred with the Host field set differently. The should have the same password and permissions though, unless you want to require a different password or grant different permissions depending on the host the user is connecting from.

New and existing users can be edited by clicking on their names in the list, which brings up an editing form almost identical to the one used for creating a user. The only different is that the Password field has a Don't change option which is selected if the user has a password, and which tells Webmin to leave the password unchanged when the user is saved. After making changes, click the Save button at the bottom of the form to update the user in the database. Or to delete it, hit the Delete botón. If there are multiple entries for the same user, you will have to update them all individually if changing the password or permissions.

Unless you have already created another administration user with full privileges, the root user should not be deleted. Because this Webmin module normally logs in a root itself, modifying or removing this user may force you to login to MySQL again as explained in the introduction to the module earlier in the chapter. By deleting the root user or removing its privileges, it is possible to deny yourself access to the database, which can only be fixed using command-line programs like mysqladmin.

Like many other modules, the MySQL Database Server module can be configured to automatically create, update or delete a MySQL user when the same thing happens to a corresponding Unix user. This can be useful if you allow some of the Unix users on your system to access databases, and want to keep their passwords and usernames synchronized.

To set up synchronization, the steps to follow are:

  1. On the module's main page, click on the User Permissions icono. Scroll down to the form below the list of existing MySQL users.
  2. If you want a new MySQL user to be created for each new Unix user, check the Add a new MySQL user when a Unix user is added caja. Then select the permissions that should be granted to the user from the list to the right. When a MySQL user is automatically added, its will be allowed to login from any host.
  3. If you want MySQL users to be renamed or have their passwords changed when the same thing happens to matching Unix users, check the *Update a MySQL user when the matching Unix user is modified* box. If more than one entry exists for the same user, they will all be effected.
  4. To have a MySQL user deleted at the same time as the Unix user of the same name, check the *Delete a MySQL user when the matching Unix user is deleted* box. If more than one entry exists for the same user, they will all be deleted.
  5. Haga clic en Guardar button to make the new synchronization settings active.

Managing database, host, table and field permissions

Users created by following the instructions in the previous section have access to all databases on the server with the same permissions. However, it is possible to give a user access to only specific databases by following the steps below:

  1. Make sure the user does not have any permissions on the User Permissions page. Any that he has set here will apply to all databases, which is not what you want.
  2. On the module's main page, click on the Database Permissions icono. This will bring up a list of users and the privileges they have for specific databases.
  3. Click on the Create new database permissions link above or below the list.
  4. In the form that appears, the Databases field controls which databases he will have access to. You can either select the Any radio button to grant permissions for all databases, select the second radio button to grant access to the database selected from the menu, or choose the final button to grant access to databases whose names match the SQL pattern entered into the adjacent field. Typically the second option is the one that you want to select, so that you can grant access to a single database. If the user should have access to more than one, you will need to add multiple database permissions entries.
  5. In the Username field, select the second radio button and enter the name of the MySQL user to whom access should be granted.
  6. The Hosts field allows you to choose which client host(s) the user will be able to connect to the database from. You should normally select Any , which gives him access from anywhere - unless the user himself is prevented from connecting from some hosts, explained in the Managing MySQL users section .
  7. From the Permissions list, select the privileges that the user should have for the chosen database. These will be added to any that are set for the user on the User Permissions page.
  8. Haga clic en Guardar button to add and activate the new permissions. You will be returned to the database permissions list.

You can edit database permissions by clicking on a database name from the list. This will take you to an editing form identical to the creation form in which the database, username, hosts or permissions can be changed. The Save button saves and activates any changes, while the Delete button removes the permissions from the database.

When MySQL is first installed, database permissions for the Anonymous user in the test and test_% databases will be created automatically. Assuming the Anonymous user exists in the User Permissions page, these give anyone who can connect to MySQL access to records in those databases. Unless you are making use of anonymous logins, these database permissions can be safely deleted.

MySQL also allows permissions to be granted on databases to all users connecting from certain client hosts. This can be useful if you want to increase the privileges that a particular client system has, such as a web server connecting to your database server. To add host permissions, the steps to follow are:

  1. On the module's main page, click on the Host Permissions icono. This will take you to a page listing existing permissions granted to client hosts, if any. When MySQL is installed, no permissions of this type are initially defined.
  2. Click on the Create new host permissions to bring up a form for adding a new host permissions entry.
  3. If the permissions should apply to all databases, select the Any radio button in the Databases campo. If they are for only a specific database, select the second radio button and choose a database from the menu next to it. If you want to grant permissions to databases whose names match an SQL pattern, select the final radio button and enter the pattern into the adjacent text field.
  4. In the Hosts field, select the second radio button and enter a hostname, IP address or hostname or IP pattern (like %.example.com or 192.168.1.% ) into the field next to it. Selecting the Any button isn't particularly useful.
  5. From the Permissions menu, choose those privileges that will be granted to all users connecting to the chosen database from the specified host. These will be added to any other permissions that are granted on the User Permissions or Database Permissions pages.
  6. Haga clic en Guardar button to activate the new client host permissions.

As usual, you can edit existing an host permissions entry by clicking on the database name from the list, editing fields and clicking Save . Or you can remove it with the Delete botón.

MySQL also supports the granting of permissions to specific tables and fields to users connecting from certain hosts. Webmin allows you to set these up by clicking on the Table Permissions and Field Permissions icons on the main page. However, as they are quite complex and rarely used, they are not covered in this chapter.

Module access control

Normally a Webmin user who has access to the MySQL Database Server module can manage all databases and use all of the module's features. However, as WebminUsers explains it is possible to restrict what a user can do with a module. In this case, you can grant access to only certain databases, control the directory that backups can be written to, and restrict the creation and deletion of databases. This can be useful if various databases on your server are owned by different people, and you want to give each of them a Webmin login to manage only those that belong to them.

To set up this kind of module access control, the steps to follow are:

  1. In the Webmin Users module, click on MySQL Database Server next to the name of a user or group who has access to the module.
  2. On the access control form, change the Can edit module configuration? campo a No . This is necessary to prevent the user changing the programs that the module uses for accessing the database.
  3. In the Databases this user can manage field, choose the Selected opción. Then select the databases he should have access to from the list below.
  4. Change the Can create new databases? campo a No . There is no reason that a restricted user of this type should be able to add new databases.
  5. Unless you want the user to be able to delete his own databases, change the Can drop databases? campo a No . Leaving it set to Yes is harmless though, as he will only be able to delete those that you have granted him access to.
  6. Change the Can stop and start MySQL server? campo a No .
  7. If you want this Webmin user to be able to control access by MySQL users to his databases, change the Can edit permissions? field to Only for managed databases . This will give him access to the Database, Host, Table and Field Permissions pages, but limit him to viewing and editing entries for the databases he is granted access to. To deny access to MySQL permission management altogether, select No en cambio. Choosing Yes is a bad idea, as it would allow the user to create MySQL users with access to all databases on the server.
  8. If the Can edit table data? field is set to No , the user will not be able to create tables, edit fields, run SQL commands or make backups. Instead, he will only be able to use the module's record viewing and editing feature.
  9. When the Login to MySQL as field is set to *Username from Module Config*, all database actions performed by this user will be done as the MySQL user set in the module configuration, typically root. However, you may want the Webmin user to login as a less-privileged MySQL user as an additional security precaution. This way, even if the user finds a way to defeat the module's restrictions he will still not be able to execute SQL commands as root. To use a different login, select the Username option and enter a valid MySQL login and password into the adjacent fields. This alternate user must have the privileges to perform everything that the module needs to do though, such as creating tables and possibly granting permissions.
  10. Normally Webmin runs the mysqldump command to make backups as the root Unix user, and allows the backup file to be created anywhere on your system. Because this may allow important files to be overwritten, you should change the *Backup file directory* field to a safe directory for creating backups in, such as /home/someuser/backup . Better still, the Write backup as Unix user field should be changed to a user other than root, such as the Webmin user's Unix login. The mysqldump command will be run as this user instead, which prevents it from being used to overwrite files.
  11. Finally, to make the new access control restrictions active, click Save .

If you want to give a large number of users access to MySQL though a web interface, an alternative to configuring the Webmin module for each user is to install Usermin. It has a MySQL module with an identical interface, and can be easily configured to limit which databases are visible. See chapter 47 for more information.

Module Configuration

Module Configuration

Like many other modules, this one has several options that you can set by clicking on the Module Config enlace en la esquina superior izquierda de la página principal. Those fields listed under *Configurable option* relate to the module's user interface and the method it uses to connect to the database, while those under *System configuration* define the paths to the MySQL programs and files.

Unless you have installed the database server in a different directory to the default for your operating system, fields in the second section do not generally need to be changed. This can happen if you installed MySQL from the source code instead of using the package supplied with your Linux distribution, or if you have two copies of MySQL installed and are configuring a clone of the module (covered in Webmin Configuration) to manage the second install.

If you have multiple copies of MySQL installed on your system, you should clone this module once for each server. The last three configuration options can then be customised to connect to each of the MySQL installs, which will probably be listening on different ports or use different socket files.


Webmin
  1. Cómo instalar el servidor de base de datos MySQL 8 en CentOS 8

  2. Los 5 mejores reemplazos gratuitos para el servidor MySQL

  3. Servidor de base de datos PostgreSQL

  4. Cómo permitir la conexión remota al servidor de base de datos MySQL

  5. Importar una base de datos MySQL

Listar tablas en una base de datos MySQL

Cómo permitir el acceso remoto al servidor de base de datos MySQL

Cómo crear una base de datos en MySQL

Descripción general de MySQL

Cambiar el nombre de la base de datos MySQL

Deteniendo el servidor de la base de datos MySQL:mysqld falló