Biblioteca de operaciones MySQL
1. Crea una base de datos
1. Cómo crear una base de datos
create database database1;
Crear con opciones
create database if not exists database1;
- Si no existe (si no existe) para crear la base de datos database1.
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:
- Conjunto de códigos de base de datos: el conjunto de códigos para que la base de datos almacene datos en el futuro.
- 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';
show variables like 'collation_database';
Ver los conjuntos de verificación de conexión, base de datos y servidor:
show variables like 'collation_%';
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;
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
create database d3 set utf8; #指定编码格式utf8
、
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
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));
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:
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));
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)
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.
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;
Si desea determinar en qué base de datos se encuentra, puede ejecutar:
select database();
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;
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.
No solo los datos en la base de datos test1 se almacenan en test1.sql, sino también los comandos creados en el historial:
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:
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:
Luego, restaure el comando con lo siguiente:
mysql> source /root/MySQL/test1.sql;
En este punto, puede ver la base de datos correspondiente a test1 y su contenido:
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;
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.