Base de datos MySQL gestión avanzada de capítulos_cuenta y maestro-esclavo MySQL

Base de datos MySQL avanzada

Gestión de cuentas (solo para entender)

  • Cuando opere una base de datos en un entorno de producción, no debe usar la cuenta raíz para conectarse. En su lugar, cree una cuenta específica, otorgue permisos de operación específicos a esta cuenta y luego conéctese para operar. La operación principal es data crud

  • Sistema de cuentas MySQL: De acuerdo con los diferentes permisos de la cuenta, las cuentas MySQL se pueden dividir en las siguientes
    * cuentas de nivel de instancia de servicio: Inicie una instancia de mysqld, es decir, una instancia de base de datos; si un usuario como root, tiene una instancia de servicio -nivel de permisos asignados, entonces la cuenta puede eliminar todas las bases de datos, así como las tablas en estas bases de datos

    • Cuenta a nivel de base de datos: realice todas las operaciones de agregar, eliminar, modificar y verificar una base de datos específica

    • Cuenta a nivel de tabla de datos: realice todas las operaciones, como agregar, eliminar, modificar y consultar tablas específicas

    • Permisos a nivel de campo: realizar operaciones en campos específicos de ciertas tablas

    • Cuenta de nivel de programa almacenada: agregue, elimine, modifique y verifique programas almacenados

    • Las operaciones de cuenta incluyen principalmente crear cuentas, eliminar cuentas, modificar contraseñas, permisos de autorización, etc.

Nota:

进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限
通常都使用数据库级操作权限

Permiso concedido

Necesita usar una cuenta de nivel de instancia para iniciar sesión y operar, tome root como ejemplo

Las principales operaciones incluyen:

  • Ver todos los usuarios
  • Cambia la contraseña
  • eliminar usuarios

Ver todos los usuarios

  • Toda la información de usuarios y permisos se almacena en la tabla de usuarios de la base de datos mysql
  • Ver la estructura de la tabla de usuarios
desc user;
  • Descripción del campo principal:
    • Anfitrión indica el anfitrión al que se le permite acceder
    • El usuario representa el nombre de usuario
    • authentication_string representa la contraseña, que es el valor cifrado

Ver todos los usuarios

select host,user,authentication_string from user;

resultado

mysql> seleccione host, usuario, cadena_de_autenticación del usuario;

anfitrión usuario cadena_de_autenticación
localhost raíz * E74858DB86EBA20BC33D0AECAE8A8108C56B17FA
localhost mysql.sys * ESTA CONTRASEÑA NO ES VÁLIDA QUE PUEDE UTILIZAR AQUÍ
localhost debian-sys-maint * EFED9C764966EDB33BB7318E1CBD122C0DFE4827

3 filas en conjunto (0,00 seg)

Crear cuenta, autorizar

  • Necesita usar una cuenta de nivel de instancia para iniciar sesión y operar, tome root como ejemplo
  • Los permisos comunes incluyen principalmente: crear, modificar, soltar, insertar, actualizar, eliminar, seleccionar
  • Si asigna todos los privilegios, puede usar todos los privilegios
创建账户&授权
grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

示例1:
Cree una cuenta laowang con una contraseña de 123456, a la que solo se puede acceder localmente, y solo puede leer todas las tablas en la base de datos jing_dong

  • paso 1: inicie sesión como root
mysql -uroot -p
回车后写密码,然后回车
  • paso 2: crea una cuenta y concede todos los permisos
grant select on jing_dong.* to 'laowang'@'localhost' identified by '123456';
说明:

1、可以操作python数据库的所有表,方式为:jing_dong.*
2、访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
3、访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
4、查看用户有哪些权限


show grants for laowang@localhost;
  • paso 3: cerrar sesión en root
quit
  • paso 4: inicie sesión con la cuenta de laowang
mysql -ulaowang -p
回车后写密码,然后回车
  • El efecto de aterrizaje es el siguiente

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Operación de la cuenta

Modificar permisos

grant 权限名称 on 数据库 to 账户@主机 with grant option;

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Cambia la contraseña

使用root登录,修改mysql数据库的user表

  • Utilice la función de contraseña () para el cifrado de contraseña
update user set authentication_string=password('新密码') where user='用户名';
例:
update user set authentication_string=password('123') where user='laowang';
  • Tenga en cuenta que debe actualizar los permisos después de que se complete la modificación
刷新权限:flush privileges

Inicio de sesión remoto (uso peligroso con precaución)

Úselo con precaución
Úselo con precaución
Úselo con precaución

Si usa el comando msyql en un Ubuntu para conectarse de forma remota a otro servidor mysql, puede hacerlo de la siguiente manera, pero este método es bueno para comprender, no lo use en un entorno de producción real

修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

Inserte la descripción de la imagen aquí

Luego reinicie msyql

service mysql restart

Prueba la conexión en otro Ubuntu

Inserte la descripción de la imagen aquí

Si sigue sin poder conectarse, las posibles razones son:

  1. problema de red
通过 ping xxx.xxx.xx.xxx可以发现网络是否正常

2) Verifique si la base de datos está configurada con el parámetro bind_address

本地登录数据库查看my.cnf文件和数据库当前参数show variables like 'bind_address';

如果设置了bind_address=127.0.0.1 那么只能本地登录

3) Verifique si el parámetro skip_networking está configurado en la base de datos

如果设置了该参数,那么只能本地登录mysql数据库

4) ¿El puerto está especificado correctamente?

Borrar cuenta

  • Sintaxis 1: iniciar sesión como root
drop user '用户名'@'主机';
例:
drop user 'laowang'@'%';
  • Sintaxis 2: inicie sesión como root y elimine los datos en la tabla de usuarios de la base de datos mysql
delete from user where user='用户名';
例:
delete from user where user='laowang';

-- 操作结束之后需要刷新权限
flush privileges
  • Se recomienda utilizar la sintaxis 1 para eliminar usuarios. Si la eliminación falla con la sintaxis 1, utilice la sintaxis 2

¿Qué debo hacer si olvido la contraseña de la cuenta root?

Maestro-esclavo de MySQL (solo para comprensión)

Definición de sincronización maestro-esclavo

La sincronización maestro-esclavo permite que los datos se repliquen desde un servidor de base de datos a otros servidores. Al replicar datos, un servidor actúa como maestro y los servidores restantes actúan como esclavos. Debido a que la replicación se realiza de forma asincrónica, el servidor esclavo no necesita estar conectado al servidor maestro todo el tiempo, y el servidor esclavo puede incluso conectarse al servidor maestro de forma intermitente marcando. A través del archivo de configuración, puede especificar copiar todas las bases de datos, una determinada base de datos o incluso una determinada tabla en una determinada base de datos.

Beneficios de utilizar la sincronización maestro-esclavo:

  • Mejore el rendimiento de la base de datos agregando servidores esclavos, realice la escritura y actualización en el servidor maestro y proporcione funciones de lectura en el servidor esclavo, que pueden ajustar dinámicamente el número de servidores esclavos, ajustando así el rendimiento de toda la base de datos.

  • Mejore la seguridad de los datos, debido a que los datos se han copiado al servidor esclavo, el servidor esclavo puede finalizar el proceso de replicación, por lo que se puede realizar una copia de seguridad en el servidor esclavo sin destruir los datos correspondientes del servidor maestro.

  • Los datos en tiempo real se generan en el servidor maestro y los datos se analizan en el servidor esclavo para mejorar el rendimiento del servidor maestro.

Mecanismo de sincronización maestro-esclavo

Inserte la descripción de la imagen aquí

La sincronización maestro-esclavo entre servidores Mysql se basa en el mecanismo de registro binario. El servidor maestro utiliza el registro binario para registrar los cambios en la base de datos. El servidor esclavo lee y ejecuta el archivo de registro para mantener los datos consistentes con el servidor maestro.

Al utilizar el registro binario, se registrarán todas las operaciones del servidor maestro y luego el servidor esclavo recibirá una copia del registro. El servidor esclavo puede especificar qué tipo de evento en el registro se ejecuta (por ejemplo, solo insertar datos o solo actualizar datos), y todas las declaraciones en el registro se ejecutarán de forma predeterminada.

Cada servidor esclavo registrará información sobre el registro binario: nombre de archivo y declaraciones procesadas, lo que significa que diferentes servidores esclavos pueden ejecutar diferentes partes del mismo registro binario, y el servidor esclavo puede conectarse o interrumpir la conexión con el servidor en cualquier momento.

El servidor maestro y cada servidor esclavo deben configurarse con un número de identificación único (hay un elemento de configuración de ID de servidor en el módulo [mysqld] del archivo my.cnf). Además, cada servidor esclavo también debe pasar el CHANGE Sentencia MASTER TO Configure la dirección IP del servidor principal al que desea conectarse, el nombre del archivo de registro y la ubicación en el registro (esta información se almacena en la base de datos del servidor principal).

Pasos básicos para configurar la sincronización maestro-esclavo

Hay muchas formas de configurar la sincronización maestro-esclavo, que se pueden resumir en los siguientes pasos:

  • En el servidor principal, el mecanismo de registro binario debe estar encendido y se debe configurar una ID independiente
  • En cada servidor esclavo, configure una ID única y cree una cuenta para copiar específicamente los datos del servidor maestro
  • Antes de iniciar el proceso de copia, registre la información de ubicación del archivo binario en el servidor maestro.
  • Si ya hay datos en la base de datos antes de comenzar a copiar, primero debe crear una instantánea de datos (puede usar mysqldump para exportar la base de datos o copiar el archivo de datos directamente)
  • Configure la dirección IP y la autorización de inicio de sesión del servidor maestro para conectarse desde el servidor, el nombre y la ubicación del archivo de registro binario

Cómo configurar la sincronización maestro-esclavo en detalle

Materiales de referencia: separación de lectura y escritura de la base de datos, método de implementación de sincronización maestro-esclavo

Supongo que te gusta

Origin blog.csdn.net/weixin_42250835/article/details/90696113
Recomendado
Clasificación