欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker + MySql 安装过程中的那些坑!!!

程序员文章站 2024-02-27 23:51:33
...
# docker拉取mysql镜像
#  [镜像类型:版本号](例如: mysql:latest)
docker pull mysql:latest
# 查看本地镜像
docker images
# 查看运行的容器
docker ps
# 创建并启动mysql容器
#  -p 3306:3306 (将容器的[3306]端口映射到主机的[3306]端口)
#  --name 给启动容器命名
#  -e MYSQL_ROOT_PASSWORD=123456 (初始化root用户的密码)
#  -d 后台运行容器,并返回容器ID
#  [服务类型:版本号] (例如: [ mysql:latest ])

docker run -p 3306:3306 --name localmysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

# 特殊说明: 
#  1.不配做 [-p] 宿主机与docker的映射,会造成mysql客服端无法连接
#  2.如果一开始忘记做映射怎么办?删除容器再来一遍,这比你修改映射来的简单
#  3.Mysql8.0+上的版本, 客户端直接连接,会出现如下异常,继续跟着往下操作就行 
#   “Authentication plugin 'caching_sha2_password' cannot be loaded 乱码”
# 进入mysql容器
#  -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
#  -i 则让容器的标准输入保持打开
docker exec -ti localmysql /bin/bash
# 进入mysql服务
#  -u 用户名
#  -p 登录密码
mysql -uroot -p123456
# 更新密码-加密算法
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
#  或
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

【此时mysql客户端,就可以正常连接了】

# 退出: mysql服务/mysql容器
exit
# 停止容器(mysql)
docker stop localmysql
# 启动现有容器(重启容器-mysql)
docker start localmysql
# 查看容器的标准输出
docker logs localmysql
#  或
docker logs ID
# 删除容器(mysql)
docker rm localmysql