1. Tire de la imagen mysql (la última imagen se extrae de forma predeterminada) 8.0.22
docker pull mysql:8.0.22
2. Cree datos mysql persistentes y mysql.cnf en la máquina host (personalización del directorio, my.cnf no necesita escribir nada, de acuerdo con las preferencias personales)
mkdir /web/mysql-data/cnf
mkdir /web/mysql-data/data
vi /web/mysql-data/cnf/mysql.cnf
3. Agregar permisos de operación
chmod 777 /usr/local/mysqlData/test/data
备注:挂载时权限验证(操作权限)
4. Ejecute la imagen espejo, configure la contraseña inicial, la asignación entre la máquina local y el puerto acoplable, y monte el disco de datos local ( inicie el servicio msyql )
docker run -itd -p 3306:3306 --name mysql -v /web/mysql-data/cnf -v /web/mysql-data/data:/var/lib/mysql -v /web/mysql-data/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root mysql:8.0.22
5. Introduzca el contenedor test_mysql
6. Dado que el algoritmo de contraseña se ha modificado en versiones anteriores a Mysql5.6, el algoritmo de contraseña debe actualizarse aquí para facilitar el uso de conexiones Navicat (nota, aquí cambié la contraseña a "123456")
mysql> otorgar todos los PRIVILEGIOS en *.* a root@'%' CON OPCIÓN DE CONCESIÓN;
Consulta OK, 0 filas afectadas (0.01 seg)
mysql> ALTER usuario 'root'@'%' IDENTIFICADO POR '123456' LA CONTRASEÑA VENCE NUNCA;
Consulta OK, 0 filas afectadas (0.11 seg)
mysql> ALTER usuario 'root'@'%' IDENTIFICADO CON mysql_native_password BY '123456';
Consulta OK, 0 filas afectadas (0.11 seg)
mysql> FLUSH PRIVILEGES;
Consulta OK, 0 filas afectadas (0.01 seg)
7. Use navicat para conectarse a mysql, como se muestra en la figura: