1. Puxe a imagem mysql (a última imagem é puxada por padrão) 8.0.22
docker pull mysql:8.0.22
2. Crie dados mysql persistentes e mysql.cnf na máquina host (personalização do diretório, my.cnf não precisa escrever nada, de acordo com a preferência pessoal)
mkdir /web/mysql-data/cnf
mkdir /web/mysql-data/data
vi /web/mysql-data/cnf/mysql.cnf
3. Adicione permissões de operação
chmod 777 /usr/local/mysqlData/test/data
备注:挂载时权限验证(操作权限)
4. Execute a imagem espelhada, defina a senha inicial, o mapeamento entre a máquina local e a porta docker e monte o disco de dados local ( inicie o serviço 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. Digite o contêiner test_mysql
6. Como o algoritmo de senha foi modificado em versões acima do Mysql5.6, o algoritmo de senha precisa ser atualizado aqui para facilitar o uso de conexões Navicat (observe, aqui alterei a senha para "123456")
mysql> concede todos os PRIVILÉGIOS em *.* para root@'%' WITH GRANT OPTION;
Consulta OK, 0 linhas afetadas (0,01 seg)
mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
Consulta OK, 0 linhas afetadas (0,11 seg)
mysql> ALTER user 'root'@'%' IDENTIFICADO COM mysql_native_password BY '123456';
Consulta OK, 0 linhas afetadas (0,11 seg)
mysql> FLUSH PRIVILEGES;
Consulta OK, 0 linhas afetadas (0,01 seg)
7. Use o navicat para se conectar ao mysql, conforme mostrado na figura: