Biblioteca de operaciones MySQL

1. Crea una base de datos

1. Cómo crear una base de datos

create database database1;

imagen-20230716160242203

Crear con opciones

create database if not exists database1;
  • Si no existe (si no existe) para crear la base de datos database1.

imagen-20230716162145611

2. Problema de codificación al crear la base de datos

La creación de una base de datos que trate con datos debe tener algo que ver con la codificación. Al crear una base de datos, hay dos conjuntos de codificación:

  1. Conjunto de códigos de base de datos: el conjunto de códigos para que la base de datos almacene datos en el futuro.
  2. Conjunto de verificación de base de datos: admite la base de datos y la codificación utilizada para la comparación de campos es esencialmente un formato de codificación utilizado para leer datos en la base de datos.

Por lo tanto, no importa qué operación realice la base de datos sobre los datos, es necesario asegurarse de que la operación y la codificación de la base de datos sean coherentes.

Vea los conjuntos de caracteres y las sumas de verificación compatibles con el sistema de forma predeterminada:

show variables like 'character_set_database';

imagen-20230716163250563

show variables like 'collation_database';

imagen-20230716163406782

Ver los conjuntos de verificación de conexión, base de datos y servidor:

show variables like 'collation_%';

imagen-20230716163700707

En la mayoría de los casos, la conexión a la base de datos, la propia base de datos y el servidor de la base de datos son todos utf8. En la configuración inicial de my.cnf, configuramos todos los conjuntos de caracteres predeterminados como utf8 para la unificación. Si no se configura, es posible que los datos no se analicen correctamente debido a codificaciones diferentes.

Ver todos los juegos de caracteres en la base de datos

show charset;

imagen-20230716163933162

Mirando la tabla de comparación, la base de datos selecciona el conjunto de caracteres utf8.

Ver las reglas de validación del conjunto de caracteres admitidas por la base de datos

show collation;

3. Especifique la codificación para crear la base de datos

Cuando creamos una base de datos sin especificar un juego de caracteres y reglas de verificación, el sistema usa el juego de caracteres predeterminado: utf8, y la regla de verificación es: utf8_general_ci.

Dos caminos:

create database d2 charset=utf8; #指定编码格式utf8

imagen-20230716200505946

create database d3 set utf8; #指定编码格式utf8

imagen-20230716200815758

El conjunto de caracteres del juego de códigos se establece al mismo tiempo:

create database d4 charset=utf8 collate utf8_general_ci; #既指明编码,又指明校验规则

Cree bases de datos con diferentes reglas de codificación y verificación basadas en tablas de conjuntos de caracteres y tablas de verificación

imagen-20230716201340291

4. Verificar el impacto de las reglas de validación en la base de datos

no entre mayúsculas y minúsculas

Cree una base de datos con reglas de validación usando utf8_ general_ ci [sin distinción entre mayúsculas y minúsculas]

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));

imagen-20230717204517443

Dado que no distingue entre mayúsculas y minúsculas, cuando se especifica 'a', la regla de verificación utf8_ general_ci verificará 'A' y 'a' juntos:

imagen-20230717204907443

distingue mayúsculas y minúsculas

Cree una base de datos con reglas de validación usando utf8_ bin [sensible a mayúsculas y minúsculas]

create database test2 collate utf8_bin;
use test2;
create table if not exists person(name varchar(20));

imagen-20230717205550620

Por lo tanto, dependiendo de las reglas de verificación, los resultados que encontremos también pueden ser diferentes.

Dependiendo de las reglas de verificación, el orden de clasificación será diferente: (de pequeño a grande)

imagen-20230717205936435

Por lo tanto, al ignorar el caso, no se distingue la ordenación del caso.

2. La relación entre la base de datos y el sistema de archivos

Crear una base de datos: crear base de datos db_name; la esencia es crear un directorio en /var/lib/mysql.

Elimine la base de datos: suelte la base de datos db_name; la esencia es eliminar el directorio en /var/lib/mysql.

Por lo tanto, podemos crear un directorio en /var/lib/mysql y se generará una base de datos correspondiente a nivel de base de datos.

imagen-20230716161418944

De manera similar, si elimina un directorio en el directorio mysql, también se eliminará la base de datos correspondiente a nivel de base de datos.

Por supuesto, es absolutamente irrazonable crear un directorio a nivel del sistema de archivos para generar una base de datos correspondiente. Por lo tanto, mysql8.0 deshabilita esta función, mientras que mysql5.6 la admite.

3. Manipular la base de datos

1. Revisa la base de datos

show databases;

imagen-20230716155403820

Si desea determinar en qué base de datos se encuentra, puede ejecutar:

select database();

imagen-20230719130308084

2. Eliminar la base de datos

drop database db_name;

El resultado después de realizar la eliminación:

  • La base de datos correspondiente no se puede ver dentro de la base de datos.
  • La carpeta de la base de datos correspondiente se elimina, se elimina en cascada y se eliminan todas las tablas de datos que contiene

Nota: No elimine la base de datos a voluntad.

3. Modificar la base de datos

  • La modificación de la base de datos se refiere principalmente a la modificación del conjunto de caracteres de la base de datos y las reglas de verificación.
alter database test2 charset=gbk collate gbk_Chinese_ci;

imagen-20230719130801155

4. Copia de seguridad y recuperación de la base de datos

1. Copia de seguridad de la base de datos

 mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

-B: representa la opción para seleccionar la base de datos.

imagen-20230719135036092

No solo los datos en la base de datos test1 se almacenan en test1.sql, sino también los comandos creados en el historial:

imagen-20230719135143891

En este punto, se completa la operación de copia de seguridad de la base de datos test1.

2. Recuperación de base de datos

Ahora, elimine la base de datos test1:

imagen-20230719135825570

De esta forma, bajo la ruta de /var/lib/mysql, el directorio test1 no debe existir.

Mediante el comando pwd conocemos la ruta donde se encuentra test1.sql:

imagen-20230719140336913

Luego, restaure el comando con lo siguiente:

mysql> source /root/MySQL/test1.sql;

imagen-20230719140542138

En este punto, puede ver la base de datos correspondiente a test1 y su contenido:

imagen-20230719141029717

Precauciones

¿Qué hacer si la copia de seguridad no es de toda la base de datos, sino de una de las tablas?

mysqldump -u root -p 数据库名 表名1 表名2 > 路径/mytest.sql

Copia de seguridad de múltiples bases de datos al mismo tiempo

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

Si el parámetro -B no se incluye al hacer una copia de seguridad de una base de datos, al restaurar la base de datos, primero debe crear una base de datos vacía, luego usar la base de datos y luego usar la fuente para restaurar.

5. Comprueba el estado de la conexión

Si hay un bloqueo al usar la base de datos, es posible que no seas el único que accede a la base de datos, por lo tanto, a través del siguiente comando, podemos ver la cantidad de usuarios y el Id del nombre.

show processlist;

imagen-20230719143408395

Esto puede decirnos qué usuarios están actualmente conectados a nuestro MySQL.Si se encuentra que un usuario no es su inicio de sesión normal, es muy probable que su base de datos haya sido invadida.

Supongo que te gusta

Origin blog.csdn.net/NEFUT/article/details/131808465
Recomendado
Clasificación