Docker instala MySQL y usa Navicat para conectarse

1. Tire de la imagen de MySQL

Lista de espejos antes de sacar el espejo de MySQL:

inserte la descripción de la imagen aquí

  • La imagen de MySQL se puede extraer con el siguiente comando:
docker pull mysql

inserte la descripción de la imagen aquí

Esto descargará la última versión de la imagen MySQL en la máquina virtual.

2. Crea y ejecuta un contenedor MySQL

docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql

Descripción de parámetros:

  • –name: especifica el nombre del contenedor, lo cual es conveniente para ingresar la línea de comando del contenedor más adelante.
  • -itd: entre ellos, i es una operación interactiva, t es una terminal y d se refiere a la ejecución en segundo plano.
  • -p: significa generar un puerto aleatorio localmente para mapear mysqlel puerto 3306.
  • -e: Establecer variables de entorno.
  • MYSQL_ROOT_PASSWORD=root123456: rootse especifica la contraseña de MySQL.
  • -d mysql: se refiere a ejecutar mysqlla imagen, configurando el contenedor para que se ejecute en segundo plano todo el tiempo.

Ejecute la captura de pantalla:

inserte la descripción de la imagen aquí

[Conocimientos complementarios]:

En Docker, -elas variables de entorno se pueden configurar mediante parámetros. Las variables de entorno son valores de configuración que afectan el comportamiento de tiempo de ejecución de un contenedor. Estos valores se pueden usar dentro del contenedor, por ejemplo, al acceder a una base de datos en una aplicación, puede usar variables de entorno para especificar la información de conexión de la base de datos.

Estos son algunos -eejemplos cuando se ejecutan contenedores Docker con el parámetro:

  1. Establecer variables de entorno individuales:

    docker run -e VAR_NAME=VAR_VALUE image_name
    

    VAR_NAMEEsto establecerá una variable de entorno nombrada en el contenedor con un valor de VAR_VALUE.

  2. Establecer múltiples variables de entorno:

    docker run -e VAR1_NAME=VAR1_VALUE -e VAR2_NAME=VAR2_VALUE image_name
    

    VAR1_NAMEEsto establecerá dos variables de entorno y en el contenedor VAR2_NAMEcon valores correspondientes a VAR1_VALUEy respectivamente VAR2_VALUE.

  3. Establecer desde el archivo de variables de entorno:

    docker run --env-file env_file_name image_name
    

    env_file_namees un archivo que contiene pares clave-valor de variables de entorno. Cada fila debe contener un par clave-valor, por ejemplo VAR_NAME=VAR_VALUE, . Docker leerá los pares clave-valor en el archivo y establecerá las variables de entorno correspondientes en el contenedor.

Al establecer variables de entorno, puede configurar varios parámetros requeridos por la aplicación en el contenedor, como cadenas de conexión de base de datos, claves API, etc. Esto facilita la implementación de contenedores en diferentes entornos sin codificar la configuración de la aplicación.

3. Verifique que el contenedor MySQL se haya creado y se esté ejecutando correctamente

docker ps

inserte la descripción de la imagen aquí

3.1 Ingresar al contenedor MySQL

docker exec -it mysql-test /bin/bash

3.2 Ingresar MySQL

mysql -uroot -p
Enter password:root123456

inserte la descripción de la imagen aquí

3.3 Ver host y usuario

select host,user from mysql.user;

inserte la descripción de la imagen aquí

  • Asegúrese de que rooteso signifique que puede conectarse de forma remota.host%

4. MySQL permite el acceso remoto

4.1 Cambiar base de datos

Nota: Este debería ser el valor predeterminado, está bien si no cambias, solo cámbialo para estar seguro

use mysql;

4.2 Asignar privilegios de acceso remoto al usuario raíz

GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

Descripción de parámetros:

  • CONCEDER: otorgar comando
  • TODOS LOS PRIVILEGIOS: todos los privilegios del usuario actual
  • ENCENDIDO: preposición
  • . : la autoridad de operación correspondiente del usuario actual en todas las bases de datos y tablas
  • A: preposición
  • 'root'@'%': la autoridad se asigna al rootusuario, todas las ip pueden conectarse
  • CON OPCIÓN DE SUBSIDIO: permitir subvenciones en cascada

4.3 Forzar permisos de actualización

FLUSH PRIVILEGES;

inserte la descripción de la imagen aquí

5. El servidor configura el puerto abierto de 3306

¿Cómo abre Windows el puerto?

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

  • Abra el puerto 3306 en la máquina virtual para permitir las conexiones entrantes a MySQL. Puede usar el siguiente comando para permitir las conexiones entrantes a través del firewall:

    ufw allow 3306
    

inserte la descripción de la imagen aquí

6. Ver IP de Ubuntu

# 查看 IP 地址
ip addr

# 也可以用这个命令
ifconfig

inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí

7. Posibles problemas

  • Capturas de pantalla de posibles problemas :

imagen

  • La razón del problema :

Esto se debe a que la regla de cifrado de contraseña anterior a MySQL8 es mysql_native_password, y la regla de cifrado posterior a MySQL8 es caching_sha2_password, es decir, si desea usar Navicat para conectarse a MySQL, solo necesita volver a cambiar la regla de contraseña a mysql_native_password;

  • La solución es la siguiente :

7.1 Entrar en la base de datos MySQL

docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456

7.2 Seleccionar base de datos

use mysql;

7.3 Cambiar el método de cifrado de contraseña

IDENTIFICADO POR 'root123456': Ingrese la contraseña al conectarse, la contraseña es root123456

ALTER USER 'root'@'%' IDENTIFIED BY 'root123456' PASSWORD EXPIRE NEVER;

7.4 Actualizar contraseña de usuario

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';

7.5 Actualizar permisos

FLUSH PRIVILEGES;

Ejecute la captura de pantalla:

inserte la descripción de la imagen aquí

8. Prueba de conexión de Navicat a MySQL

inserte la descripción de la imagen aquí

En este punto, Docker instala MySQL y se conecta con Navicat ¡finaliza oficialmente!

Supongo que te gusta

Origin blog.csdn.net/m0_51913750/article/details/131520076
Recomendado
Clasificación