la raison
D'après mes nombreuses expériences, j'ai trouvé que pour démarrer mysql avec docker, vous devez ajouter le / var / lib / mysql à l'intérieur du mappage -v, et il apparaîtra s'il manque
ERROR 2002 (HY000): Can't connect to local MySQL
server through socket '/var/run/mysqld/mysqld.sock' (2)
Par conséquent, la commande complète consiste à créer d'abord un répertoire de données mysql sur l'hôte, puis à démarrer mysql et à le mapper à l'hôte
# mkdir /root/tmp1 # 新建或者保持这个目录内部干净
# docker run -d -p 3307:3306 -v /root/tmp1:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
# docker exec -it {生成的容器id} bash
Après avoir entré le conteneur avec exec, puis exécuté mysql -u root -p pour
entrer le mot de passe, il n'y aura pas d'erreur ERROR 2002 (HY000).