Motor de almacenamiento MySQL, creación de bases de datos, gestión de autoridades

Tabla de contenido

I. Introducción

1. Introducción a MySQL

2. Motor de almacenamiento

1. ¿Qué es un motor de almacenamiento?

         2. Motores de almacenamiento comunes

2.1.InnoDB (motor predeterminado de MySQL)

2.1.1 Cuatro niveles de aislamiento

2.2 Motor de almacenamiento MyISAM

2.3 Motor de almacenamiento de memoria

3. Transacciones ACID

Tres, operación CRUD

1. Insertar datos

2. Consulta de datos

3. Modificar datos

4. Eliminar datos

4. Base de datos

1. Introducción a la base de datos por defecto

2. Crea una base de datos

3. Ver biblioteca

4. Eliminar biblioteca

5. Usuario

0. Prefacio

1. Crea un usuario

cambiar la contraseña

2. Ver usuarios

3. Empoderamiento del usuario

4. Recuperar los derechos de usuario

5. Ver permisos de usuario

6. Eliminar usuario



I. Introducción

1. Introducción a MySQL

MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto ampliamente utilizado para el desarrollo de aplicaciones web y el almacenamiento de datos. Aquí hay algunos detalles sobre MySQL:

                1. Sistema de gestión de bases de datos relacionales : MySQL es un sistema de gestión de bases de datos relacionales que utiliza tablas para organizar y almacenar datos. Es compatible con la gestión de datos y la consulta mediante SQL (lenguaje de consulta estructurado).

                2. Código abierto y gratuito : MySQL es un software de código abierto y el código se puede obtener y utilizar de forma gratuita. Esto lo convierte en una de las opciones más populares tanto para desarrolladores como para empresas.

                3. Soporte multiplataforma : MySQL puede ejecutarse en múltiples sistemas operativos, incluidos Windows, Linux, macOS, etc. Esto lo hace muy flexible y adaptable a diversos entornos.

                4. Alto rendimiento y escalabilidad : MySQL es conocido por su alto rendimiento y puede manejar una gran cantidad de solicitudes de acceso simultáneas. Admite el procesamiento simultáneo y subprocesos múltiples, y puede escalar fácilmente a grandes conjuntos de datos y aplicaciones de alto tráfico.

                5. Seguridad : MySQL proporciona varias funciones de seguridad, como la autenticación de usuarios, la gestión de autoridades y el cifrado de datos. Protege los datos de accesos no autorizados y ataques maliciosos.

                6. Integridad de los datos : MySQL admite varias restricciones, como clave principal, restricción única, clave externa, etc., para garantizar la integridad y consistencia de los datos.

                7. Copia de seguridad y recuperación : MySQL proporciona herramientas de copia de seguridad y recuperación, que pueden hacer una copia de seguridad de la base de datos con regularidad y restaurar fácilmente los datos cuando sea necesario.

                8. Múltiples motores de almacenamiento : MySQL admite múltiples motores de almacenamiento, como InnoDB, MyISAM, etc. Cada motor de almacenamiento tiene características y ventajas diferentes, y se puede seleccionar el motor de almacenamiento adecuado según las necesidades de la aplicación.

                9. Admite replicación y alta disponibilidad : MySQL admite la replicación maestro-esclavo y la tecnología de clúster, que puede realizar la replicación de datos y la alta disponibilidad, y mejorar la confiabilidad y disponibilidad del sistema.

                10. Personalización : MySQL es un sistema modular que los usuarios pueden personalizar según sus necesidades. Proporciona un rico mecanismo de complemento y extensión, lo que permite a los desarrolladores agregar nuevas funciones y características según sea necesario.

En resumen, MySQL es un sistema de gestión de bases de datos relacionales potente, de alto rendimiento, fiable y seguro para aplicaciones de todos los tamaños y tipos. Es ampliamente utilizado y reconocido en el campo del desarrollo web y el almacenamiento de datos.

2. Motor de almacenamiento

1. ¿Qué es un motor de almacenamiento?

El motor de almacenamiento de la base de datos es la organización de software subyacente de la base de datos, y el sistema de administración de la base de datos (DBMS) utiliza el motor de datos para crear, consultar, actualizar y eliminar datos. Los diferentes motores de almacenamiento proporcionan diferentes mecanismos de almacenamiento, técnicas de indexación, niveles de bloqueo y otras funciones.Usando diferentes motores de almacenamiento, también puede obtener funciones específicas. Muchos sistemas de administración de bases de datos diferentes ahora admiten muchos motores de datos diferentes. El núcleo de MySQL es el motor de almacenamiento .

MySQL proporciona varios motores de almacenamiento diferentes, incluidos los que manejan tablas seguras para transacciones y los que manejan tablas no seguras para transacciones. En MySQL no es necesario utilizar el mismo motor de almacenamiento en todo el servidor, según requerimientos específicos se pueden utilizar diferentes motores de almacenamiento para cada tabla.

MySQL 8.0 admite múltiples motores de almacenamiento, los siguientes son algunos motores de almacenamiento comunes :

  1. InnoDB : el motor de almacenamiento predeterminado, admite el procesamiento de transacciones y el bloqueo a nivel de fila, y tiene buena integridad de datos y rendimiento de concurrencia.

  2. MyISAM : el motor de almacenamiento no transaccional más utilizado, adecuado para escenarios de aplicaciones con lecturas frecuentes y pocas escrituras.

  3. Memoria : también conocida como montón, almacena datos en la memoria y es adecuada para datos temporales o caché que requiere operaciones rápidas de lectura y escritura. No se admiten transacciones ni persistencia.

  4. Clúster NDB : adecuado para aplicaciones distribuidas y de alta disponibilidad, proporcionando la función de distribuir datos a múltiples servidores.

Además, MySQL 8.0 también es compatible con otros motores de almacenamiento, como Archive, CSV, Blackhole, etc. Cada motor de almacenamiento tiene diferentes características y escenarios aplicables.Al seleccionar un motor de almacenamiento, se deben considerar factores como los patrones de acceso a los datos, los requisitos y los requisitos de rendimiento. De forma predeterminada, se recomienda el motor de almacenamiento InnoDB, pero la elección específica debe evaluarse y decidirse en función de las necesidades reales.

2. Motores de almacenamiento comunes

2.1.InnoDB (motor predeterminado de MySQL)

InnoDB es un motor de almacenamiento transaccional que brinda soporte para transacciones ACID de bases de datos e implementa cuatro niveles de aislamiento del estándar SQL , con bloqueo a nivel de fila (esto muestra que la granularidad del bloqueo es pequeña y no es necesario bloquear todo el table, por lo que es adecuado para alta concurrencia) y compatibilidad con claves externas (el único de todos los motores de base de datos, solo admite claves externas). El objetivo del diseño de este motor es manejar sistemas de bases de datos de datos de gran capacidad. Crear un grupo de búfer en la memoria para el almacenamiento en caché de datos e índices.

InnoDB es el motor elegido para bases de datos transaccionales, admite tablas seguras para transacciones (ACID) y admite el bloqueo de filas y claves externas. InnoDB es el motor predeterminado de MySQL .

Consejos:

Bloqueo de filas (Row Locking): se refiere al bloqueo de filas de datos individuales en la base de datos , en lugar de bloquear toda la tabla u otra granularidad más grande. Cuando se aplica un bloqueo de fila a una fila de datos, otras transacciones no pueden modificar ni eliminar la fila de datos hasta que la transacción que mantiene el bloqueo libere el bloqueo .

La principal ventaja del bloqueo de filas es que puede proporcionar un mejor rendimiento de simultaneidad y un control de bloqueo más detallado. Múltiples transacciones pueden acceder a diferentes filas de datos al mismo tiempo sin bloquearse entre sí . Esto es muy importante para entornos de base de datos con muchas operaciones de lectura y escritura simultáneas.

2.1.1 Cuatro niveles de aislamiento

1. Lectura no confirmada (Read Uncommitted) : en este nivel de aislamiento, todas las transacciones pueden ver los resultados de ejecución de otras transacciones no confirmadas. Este nivel de aislamiento rara vez se usa en aplicaciones prácticas, porque su rendimiento no es mucho mejor que otros niveles. Leer datos no confirmados, también conocidos como lectura sucia (Dirty Read)

2. Lectura confirmada (Read Committed) : este es el nivel de aislamiento predeterminado de la mayoría de los sistemas de bases de datos (pero no el predeterminado de MySQL). Satisface la definición simple de aislamiento: una transacción solo puede ver los cambios realizados por transacciones confirmadas. Este nivel de aislamiento también admite la llamada lectura no repetible (NonrepeatableRead), porque otras instancias de la misma transacción pueden tener nuevas confirmaciones durante el procesamiento de esta instancia, por lo que la misma selección puede devolver resultados diferentes.

3. Lectura repetible (Lectura repetible) : este es el nivel de aislamiento de transacción predeterminado de MySQL.Cuando varias instancias de la misma transacción leen datos al mismo tiempo, verán los mismos datos. Pero en teoría, esto puede llevar a otro problema espinoso: la lectura fantasma (Phantom Read). En pocas palabras, la lectura fantasma significa que cuando un usuario lee un rango de filas de datos, otra transacción inserta una nueva fila en el rango. Cuando el usuario lee el rango de filas de datos nuevamente, encontrará que hay una nueva línea Phantom".

4. Serializable (Serializable) : este es el nivel de aislamiento más alto, que resuelve el problema de la lectura fantasma al obligar a ordenar las transacciones para que no puedan entrar en conflicto entre sí. En resumen, agrega un bloqueo compartido en cada lectura de fila de datos. En este nivel, puede resultar una gran cantidad de tiempos de espera y contención de bloqueo.

nivel de aislamiento lectura sucia lectura no repetible Lectura fantasma
Leer sin confirmar posible posible posible
Lectura comprometida imposible posible posible
Lectura repetible imposible imposible posible
Serializable imposible imposible imposible

Consejos:

¿Qué son las lecturas sucias, las lecturas no repetibles y las lecturas fantasma?

  • lectura sucia

La lectura sucia significa que cuando una transacción accede a los datos y los modifica, pero esta modificación no se ha enviado a la base de datos, en este momento, otra transacción también accede a los datos y luego los usa.

En T2, la transacción B cambió los datos originales de la puntuación de Zhang San de 80 a 70, y luego la transacción A los leyó en T3, pero la transacción B fue anormal en T4 y se realizó una operación de reversión. En este proceso, llamamos 70 datos sucios y la transacción A ha realizado una lectura sucia.

  • lectura no repetible

Lectura no repetible, a veces denominada "lectura confirmada". Qué significa, es decir, dentro de una transacción, los mismos datos se leen varias veces, pero se devuelven resultados diferentes. De hecho, esto se debe a que durante el período de lectura de datos en el intervalo de transacción, otras transacciones han modificado este dato y lo han confirmado, y se producirán accidentes de lectura no repetibles.

En la figura, la transacción A consulta la misma declaración en T1 y T4, pero obtiene resultados diferentes porque la transacción B modifica los datos en T2~T3 y los envía. En este proceso, los datos leídos dos veces en una transacción son diferentes, lo que llamamos lectura no repetible.

La diferencia entre lectura no repetible y lectura sucia : la primera es "lectura confirmada", la última es "lectura no confirmada"

  • Lectura fantasma

La lectura fantasma se refiere a un fenómeno similar a una alucinación que ocurre cuando una transacción no se ejecuta de forma independiente, insertando o eliminando datos actualmente afectados por otra transacción. Por ejemplo, cuando cierta transacción verifica el conteo de datos en la tabla, es 10, y después de un período de tiempo, es 11, lo que provoca una lectura fantasma, y ​​los datos obtenidos por la detección anterior son como una ilusión. Los motivos de las lecturas fantasma y las lecturas no repetibles son muy similares. Cuando los datos se manipulan varias veces, se descubre que los resultados son diferentes de los originales y se producen otras interferencias en las transacciones. Sin embargo, el enfoque de la lectura fantasma es agregar y eliminar datos, y la cantidad de registros obtenidos al operar los datos varias veces es diferente; el enfoque de la lectura no repetible es modificar los datos, y se encuentra que el valor de los datos es diferente después de leer los datos varias veces.

La transacción B inserta un nuevo dato en la tabla. Cuando la transacción A consulta los datos después del tiempo T3, de repente descubre que hay un elemento más en los datos que cuando se consultó antes, como una alucinación.

2.2 Motor de almacenamiento MyISAM

En comparación con InnoDB, no brinda soporte para transacciones de bases de datos y no admite bloqueos de granularidad fina (bloqueos de fila) ni claves foráneas. Al insertar y actualizar tablas, es necesario bloquear toda la tabla, por lo que la eficiencia será menor. y es posible que haya un cuello de botella en alta concurrencia, pero el motor MyIsam es independiente del sistema operativo y se puede usar en Windows y Linux. Sin embargo, a diferencia de Innodb, MyIASM almacena la cantidad de filas en la tabla, por lo que cuando SELECCIONA COUNT(*) FROM TABLE, solo necesita leer directamente los valores guardados sin realizar un escaneo completo de la tabla. Si la tabla tiene muchas más operaciones de lectura que de escritura y no requiere el soporte de transacciones de base de datos, MyIASM también es una buena opción.

defecto:

  • No se pueden recuperar los datos después de la corrupción de la tabla

Escena aplicable:

  • MyIsam pone gran énfasis en la lectura rápida

  • El número de filas en la tabla se almacena automáticamente en la tabla MyIsam, que se puede obtener directamente cuando sea necesario

  • Aplicable a situaciones que no requieren soporte de transacciones, funciones de clave externa y requieren bloqueo de toda la tabla

2.3 Motor de almacenamiento de memoria

Cree una tabla con los contenidos almacenados en la memoria. Cada tabla de MEMORIA en realidad corresponde a un solo archivo de disco. El acceso a tablas de tipo MEMORIA es muy rápido, porque sus datos se colocan en memoria, y por defecto se utiliza el índice HASH. Pero una vez que se cierra el servicio, los datos de la tabla se perderán. HEAP permite tablas temporales que solo residen en la memoria. Residir en la memoria hace que HEAP sea más rápido que ISAM y MYISAM, pero los datos que administra son inestables y, si no se guardan antes de apagarse, se perderán todos los datos. HEAP tampoco desperdicia mucho espacio cuando se eliminan las filas. Las tablas HEAP son útiles cuando necesita seleccionar y manipular datos usando expresiones SELECT. La memoria admite el índice hash y el índice de árbol B al mismo tiempo. El índice de árbol B puede usar consultas parciales y consultas con comodines, y también se pueden usar operadores como <,> y >= para facilitar la extracción de datos. El índice hash es igual y más rápido, pero para el rango Mucho más lento.

defecto:

  • Los datos que deben almacenarse están en un formato con una longitud de datos constante, los datos de tipo Blob y Texto no están disponibles (la longitud no es fija)

  • Las tablas se eliminan cuando terminan con

Escena aplicable:

  • Aquellas tablas de códigos cuyo contenido cambia con poca frecuencia, o como tablas de resultados intermedios de operaciones estadísticas, son convenientes para apilar de manera eficiente los resultados intermedios para el análisis y obtener resultados estadísticos finales.

  • Los datos de destino son relativamente pequeños, se accede a ellos con mucha frecuencia y los datos se almacenan en la memoria.Si los datos son demasiado grandes, se producirá un desbordamiento de la memoria. El tamaño de la tabla de memoria se puede controlar con el parámetro max_heap_table_size para limitar el tamaño máximo de la tabla de memoria.

  • Los datos son temporales y deben estar disponibles de inmediato, por lo que se pueden almacenar en la memoria

  • No importa si los datos almacenados en la tabla de memoria se pierden repentinamente

3. Transacciones ACID

  1. Atomicidad : una transacción es una unidad de operación atómica, y las operaciones en la base de datos en la transacción se ejecutan o no se ejecutan.

  2. Consistencia (Consistencia) : antes de que comience la transacción y después de que finalice, los datos deben mantenerse en un estado consistente y se debe garantizar la integridad de la base de datos. Es decir, los datos deben ajustarse a las reglas de la base de datos.

  3. Aislamiento : la ejecución de una transacción no puede ser interferida por otras transacciones. Es decir, las operaciones internas y los datos utilizados por una transacción están aislados de otras transacciones simultáneas y las transacciones ejecutadas simultáneamente no pueden interferir entre sí.

  4. Durabilidad : la persistencia también se vuelve permanente, lo que significa que una vez que se confirma una transacción, sus cambios en los datos de la base de datos deben ser permanentes.

Tres, operación CRUD

1. Insertar datos

Operación Create (Crear): La operación Create se utiliza para agregar nuevos registros de datos a la base de datos. En MySQL, podemos usar la declaración INSERT INTO para crear operaciones.

INSERT INTO users (name, email, age) VALUES ('John', '[email protected]', 25);

2. Consulta de datos

Operación de lectura (Read): La operación de lectura se utiliza para recuperar registros de datos de la base de datos. En MySQL, podemos usar la instrucción SELECT para operaciones de lectura.

Por ejemplo, userspara recuperar todos los registros de una tabla:

SELECT * FROM users;

Alternativamente, usersrecupere registros de una tabla que cumplan ciertos criterios:

SELECT * FROM users WHERE age > 18;

3. Modificar datos

Operación de modificación (actualización): La operación de actualización se utiliza para modificar los registros de datos existentes en la base de datos. En MySQL, podemos usar la instrucción UPDATE para operaciones de actualización.

Por ejemplo, para modificar usersla antigüedad de un registro en una tabla:

UPDATE users SET age = 30 WHERE id = 1;

4. Eliminar datos

Operación de eliminación: la operación de eliminación se utiliza para eliminar registros de datos de la base de datos. En MySQL, podemos usar la declaración DELETE FROM para eliminar.

Por ejemplo, userspara eliminar registros de una tabla que cumplan una determinada condición:

DELETE FROM users WHERE age > 60;

4. Base de datos

1. Introducción a la base de datos por defecto

  • esquema_información

information_schema proporciona acceso a los metadatos de la base de datos. (Los metadatos son datos sobre datos, como la base de datos o el nombre de la tabla, el tipo de datos de una columna o los permisos de acceso. Otros términos que a veces se usan para describir esta información incluyen "diccionario de datos" y "catálogo del sistema".) En otras palabras, diga , information_schema es una base de datos de información que contiene información sobre todas las demás bases de datos mantenidas por el servidor MySQL. (como el nombre de la base de datos, la tabla de la base de datos, el tipo de datos y los derechos de acceso de las columnas de la tabla, etc.)

  • mysql

La base de datos central de MySQL, similar a la tabla maestra en SQL Server, es principalmente responsable de almacenar la información de control y administración que necesita usar MySQL, como los usuarios de la base de datos y los derechos de acceso de los usuarios. Comúnmente utilizado, como modificar la contraseña del usuario root en la tabla de usuarios de la base de datos mysql.

  • esquema_de_rendimiento

Se utiliza principalmente para recopilar parámetros de rendimiento del servidor de base de datos. Y el motor de almacenamiento de la tabla en la biblioteca es PERFORMANCE_SCHEMA, pero el usuario no puede crear una tabla con el motor de almacenamiento de PERFORMANCE_SCHEMA. MySQL5.7 está habilitado de forma predeterminada.

  • sistema

Una vez completada la instalación de MySQL 8.0, habrá una base de datos sys adicional. La base de datos sys proporciona principalmente algunas vistas, y los datos provienen de performance_schema, principalmente para facilitar a los desarrolladores y usuarios la visualización de problemas de rendimiento.

2. Crea una base de datos

En MySQL, puede usar la declaración CREATE DATABASE para crear una base de datos.La sintaxis es la siguiente:

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];

El contenido entre [] es opcional. La sintaxis se explica de la siguiente manera:

  • <nombre de la base de datos>: crea el nombre de la base de datos. El área de almacenamiento de datos MySQL representará la base de datos MySQL en forma de directorio, por lo que el nombre de la base de datos debe ajustarse a las reglas de nomenclatura de carpetas del sistema operativo, y no puede comenzar con un número, y trate de ser lo más práctico posible. Tenga en cuenta que no hay distinción entre mayúsculas y minúsculas en MySQL.

  • SI NO EXISTE: A juzgar antes de crear la base de datos, la operación solo se puede realizar si la base de datos no existe actualmente. Esta opción se puede utilizar para evitar el error de creación duplicada de una base de datos que ya existe.

  • [DEFAULT] JUEGO DE CARACTERES: especifica el juego de caracteres de la base de datos. El propósito de especificar el juego de caracteres es evitar caracteres distorsionados en los datos almacenados en la base de datos. Si no especifica un conjunto de caracteres al crear una base de datos, se utiliza el conjunto de caracteres predeterminado del sistema.

  • [DEFAULT] COLLATE: especifica la intercalación predeterminada para esta base de datos.

3. Ver biblioteca

En MySQL, puede usar la declaración SHOW DATABASES para ver o mostrar las bases de datos dentro del alcance de la autoridad del usuario actual. La sintaxis para ver la base de datos es:

SHOW DATABASES [LIKE '数据库名'];

La sintaxis se explica de la siguiente manera:

  • La cláusula LIKE es opcional y se utiliza para hacer coincidir el nombre de la base de datos especificado. La cláusula LIKE puede coincidir parcial o totalmente.

  • El nombre de la base de datos está entre comillas simples ' '.

4. Eliminar biblioteca

En MySQL, cuando necesite eliminar la base de datos creada, puede usar la instrucción DROP DATABASE . Su formato de sintaxis es:

DROP DATABASE [ IF EXISTS ] <数据库名>

La sintaxis se explica de la siguiente manera:

  • <nombre de la base de datos>: especifique el nombre de la base de datos que se eliminará.

  • SI EXISTE: Se utiliza para evitar errores cuando la base de datos no existe.

  • DROP DATABASE: elimine todas las tablas de la base de datos y elimine la base de datos al mismo tiempo. Tenga mucho cuidado al usar esta declaración para evitar eliminaciones por error. Si desea utilizar DROP DATABASE, debe obtener el permiso DROP de la base de datos.

Nota: Después de instalar MySQL, el sistema creará automáticamente dos bases de datos del sistema denominadas information_schema y mysql. La base de datos del sistema almacena cierta información relacionada con la base de datos. Si se eliminan estas dos bases de datos, MySQL no funcionará normalmente.

5. Usuario

0. Prefacio

Cuando se instala MySQL, se creará por defecto un usuario llamado root.Este usuario tiene superautoridad y puede controlar todo el servidor MySQL.

1. Crea un usuario

MySQL proporciona los siguientes tres métodos para crear usuarios.

  1. Cree un usuario usando la instrucción CREATE USER

  2. Agregar usuarios a la tabla mysql.user

  3. Crear usuarios usando la instrucción GRANT

  • Cree un usuario usando la instrucción CREATE USER

Puede usar la instrucción CREATE USER para crear usuarios de MySQL y establecer las contraseñas correspondientes. Su sintaxis básica es la siguiente:

CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]

Los parámetros se describen a continuación:

  1. Usuario : Especifique para crear una cuenta de usuario, el formato es user_name'@'host_name. Aquí user_nameestá el nombre de usuario, host_nameque es el nombre de host, es decir, el nombre del host utilizado por el usuario para conectarse a MySQL.

  2. Cláusula IDENTIFIED BY : se utiliza para especificar la contraseña del usuario. Un nuevo usuario puede no tener una contraseña inicial.Si el usuario no establece una contraseña, esta cláusula se puede omitir.

  3. PASSWORD 'contraseña' : PASSWORD indica que el valor hash se usa para establecer la contraseña, y este parámetro es opcional.

Ejemplo:

CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1';

Consejos:

cambiar la contraseña

La declaración SET PASSWORD se puede utilizar para restablecer la contraseña de inicio de sesión de otros usuarios o la contraseña de la cuenta utilizada por uno mismo. La estructura sintáctica del uso de la instrucción SET para modificar la contraseña es la siguiente:

SET PASSWORD = PASSWORD ("rootpwd");

2. Ver usuarios

#切换数据库
use mysql;
#查询用户信息
select host,user,authentication_string from user;

La versión 5.7 de MySQL ya no usa Contraseña como campo de contraseña, pero lo cambió a autenticación_cadena.

Descripción del valor del parámetro del host:

valor de la columna anfitriona significado
% coincidir con todos los anfitriones
servidor local localhost no se resolverá en una dirección IP y se conectará directamente a través de UNIXsocket
127.0.0.1 Se conectará a través del protocolo TCP/IP y solo se podrá acceder localmente
::1 ::1 es compatible con ipv6, lo que significa que 127.0.0.1 es lo mismo que ipv4

3. Empoderamiento del usuario

En MySQL, solo los usuarios con autoridad GRANT pueden ejecutar la declaración GRANT , y su sintaxis es la siguiente:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user[IDENTIFIED BY [PASSWORD] 'password']] ...
[WITH with_option [with_option]...]

Descripción de parámetros:

  • El parámetro priv_type indica el tipo de permiso;

  • El parámetro column_list indica sobre qué columnas actúa el permiso, cuando se omite este parámetro significa que actúa sobre toda la tabla;

  • base de datos.tabla se utiliza para especificar el nivel de permisos;

  • El parámetro de usuario representa la cuenta de usuario, que se compone del nombre de usuario y el nombre de host, y el formato es "'username'@'hostname'";

  • El parámetro IDENTIFICADO POR se utiliza para establecer una contraseña para el usuario;

  • El parámetro de contraseña es la nueva contraseña del usuario.

La palabra clave WITH va seguida de uno o más parámetros with_option. Este parámetro tiene 5 opciones, que se describen en detalle a continuación:

  • OPCIÓN DE CONCESIÓN: Los usuarios autorizados pueden otorgar estos permisos a otros usuarios;

  • Recuento MAX_QUERIES_PER_HOUR: establezca el recuento de consultas por hora;

  • Recuento MAX_UPDATES_PER_HOUR: configurado para permitir actualizaciones de recuento por hora;

  • Conteo MAX_CONNECTIONS_PER_HOUR: Configure el conteo de conexiones por hora;

  • Recuento MAX_USER_CONNECTIONS: establece el número de conexiones que un solo usuario puede tener al mismo tiempo.

Ejemplo:

GRANT SELECT,INSERT ON *.* TO 'zking'@'localhost' IDENTIFIED BY '1234' WITH GRANT OPTION;

4. Recuperar los derechos de usuario

Eliminar algunos permisos específicos del usuario, la sintaxis es la siguiente:

REVOKE priv_type [(column_list)]...
ON database.table
FROM user [, user]...

Los parámetros de la sentencia REVOKE tienen el mismo significado que los parámetros de la sentencia GRANT. en:

  • El parámetro priv_type indica el tipo de permiso;

  • El parámetro column_list indica sobre qué columnas actúa el permiso, y si no existe tal parámetro, actúa sobre toda la tabla;

  • El parámetro de usuario consiste en un nombre de usuario y un nombre de host en el formato "nombre de usuario'@'nombre de host'".

Ejemplo 1: revocar algunos permisos de un usuario

REVOKE INSERT ON *.* FROM 'zking'@'localhost'

Ejemplo 2: Revocar todos los permisos de un usuario

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'zking'@'localhost'

5. Ver permisos de usuario

Utilice la instrucción SHOW GRANTS FOR para ver los permisos. Su formato de sintaxis es el siguiente:

SHOW GRANTS FOR 'username'@'hostname';

Entre ellos, el nombre de usuario representa el nombre de usuario y el nombre de host representa el nombre de host o la IP del host.

Ejemplo:

SHOW GRANTS FOR 'xw'@'localhost';

6. Eliminar usuario

Utilice la instrucción DROP USER para ver los permisos. Su formato de sintaxis es el siguiente: 

DROP USER 'username'@'host';

donde 'nombre de usuario' es el nombre de usuario del usuario a eliminar y 'host' es el host que especifica el usuario.

Por ejemplo, para eliminar un usuario llamado "john" y sus permisos asociados, ejecute el siguiente comando:

DROP USER 'john'@'localhost';

Recordatorio: Las diferentes versiones pueden tener oraciones diferentes. ¡Todas las oraciones de este artículo están basadas en MySQL8.0! !

Eso es todo por este intercambio, si lo encuentra útil, ¡por favor, dele un pulgar hacia arriba a un blogger! !

Supongo que te gusta

Origin blog.csdn.net/weixin_74318097/article/details/131548130
Recomendado
Clasificación