原因
根据我的大量实验,发现用docker启动mysql,必须添加-v映射内部的 /var/lib/mysql, 少了就会出现
ERROR 2002 (HY000): Can't connect to local MySQL
server through socket '/var/run/mysqld/mysqld.sock' (2)
所以,完整的命令是,先在宿主机创建 mysql数据目录,再启动mysql,映射到宿主机
# 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
用exec 进入容器后,再运行 mysql -u root -p
输入密码,就不会报错 ERROR 2002 (HY000) 了。