侧边栏壁纸
博主头像
yikeshuo博主等级

越努力越幸福

  • 累计撰写 13 篇文章
  • 累计创建 19 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

docker安装mysql8.0.28

yikeshuo
2022-03-02 / 0 评论 / 0 点赞 / 747 阅读 / 1,696 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-19,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

docker

先去镜像仓库查看mysql有那些版本:https://hub.docker.com/ 这里使用的是 mysql8.0.28
dockermysql.png

拉取mysql:8.0.28 镜像

docker pull mysql:8.0.28
dockerpull.png

查看本地docker仓库镜像

docker images
dockerimages.png

REPOSITORY    # 镜像仓库
TAG           # 镜像标签
IMAGE ID      # 镜像ID
CREATED       # 镜像创建时间
SIZE          # 镜像大小

安装运行mysql8.0.28

  1. 先在宿主机创建mysql要使用的文件夹 home/docker/mysql/data 、/home/docker/mysql/log 、/home/docker/mysql/mysql-files (mysql是数据库 docker 随时都会被干掉 防止数据丢失)
  2. 赋予文件夹权限 chmod -R 777 /home/docker/mysql/
docker run \
    -p 3317:3306 \
    -e MYSQL_ROOT_PASSWORD=root \
    -v /home/docker/mysql/data:/var/lib/mysql:rw \
    -v /home/docker/mysql/log:/var/log/mysql:rw \
    -v /home/docker/mysql/mysql-files:/var/lib/mysql-files/ \
    --name mysql8.0.28 \
    --restart=always \
    -d mysql:8.0.28

dockerrun.png

拷贝配置文件到宿主机:

docker cp mysql8.0.28:/etc/mysql/my.cnf /home/docker/mysql/conf/

停止容器:

docker stop mysql8.0.28

删除容器:

docker rm mysql8.0.28

重新执行生成容器(增加了对配置文件my.cnf的映射,直接映射,容器启动会有问题,通过执行下面-v后面的映射,最终实现数据持久化,数据存放在宿主机而不是容器内):

docker run \
    -p 3317:3306 \
    -e MYSQL_ROOT_PASSWORD=root \
    -v /home/docker/mysql/data:/var/lib/mysql:rw \
    -v /home/docker/mysql/log:/var/log/mysql:rw \
    -v /home/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf:rw \
    -v /home/docker/mysql/mysql-files:/var/lib/mysql-files/ \
    --name mysql8.0.28 \
    --restart=always \
    -d mysql:8.0.28

上面代码的意思是: docker run -p 本地主机端口号:容器服务端口号 --name 容器名字 [-e 配置信息修改 这里是设置mysql的密码] -d 镜像名字

查看mysql8.0.28容器运行情况

docker ps

进入mysql 并设置客户端工具可以连接

根据上面查询到的容器id执行
docker exec -it mysql8.0.28 bash
连接mysql
mysql -uroot -p
输入刚才设置的密码 root
切换数据库
use mysql
使用客户端工具远程连接mysql: 因为mysql8.x 版本的密码加密的方式,Navicat识别不了。先去查看mysql8.0的版本加密方式。
select host,user,authentication_string,plugin from user;
dockermysql2.png
我们需要将mysql的加密方式改成 mysql_native_password。
alter user 'root'@'%' identified with mysql_native_password by 'root';
dockermysql3.png

使用Navicat查询安装的mysql版本

select version() from dual;
dockermysqlnavicat.png

修改root用户密码

ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
重启docker
docker stop mysql8.0.28
docker start mysql8.0.28

0

评论区