doudoushijiao

docker 安装mysql和运程连接

一、拉取镜像
# 拉取镜像
docker pull mysql
 
# 或者
docker pull mysql:latest
# 指定版本号
docker pull mysql:5.7

# 以上两个命令是一致的,默认拉取的就是 latest 版本的
 
# 我们还可以用下面的命令来查看可用版本:
docker search mysql
二、查看镜像
docker images
三、运行镜像
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

#我的运行
docker run -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:latest
#如果要数据持久化就得挂载卷
  docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql01 mysql
-p 3306:3306:指定宿主机端口与容器端口映射关系
--name mysql:创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest

四、修改mysql的密码

#查看启动的MySQL容器id
docker ps |grep mysql
---->
CONTAINER ID   IMAGE     COMMAND                   CREATED         STATUS          NAMES
75580b82c2eb   mysql     "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes      mysql02

#进入启动的MySQL容器中
docker exec -it 75580b82c2eb /bin/bash

#修改MySQL配置文件,在最后一行添加skip-grant-tables代码( //跳过mysql的密码验证)
#(如果容器中没有vim命令的话,可以依次使用命令apt-get update ,apt-get install vim 下载安装vim)
vim /etc/mysql/conf.d/docker.cnf

#重启数据库
service mysql restart

#重启MySQL容器
 docker restart 75580b82c2eb
 
#再次进入启动的MySQL容器内
 docker exec -it 75580b82c2eb  /bin/bash

#使用语句mysql -u root -p 语句,登录数据库,不用输入密码,直接回车
mysql -u root -p

#使用MySQL数据库
use mysql

#更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

#刷新权限
FLUSH PRIVILEGES;

#再次编辑mysql配置文件,删除刚刚添加的skip-grant-tables
vim /etc/mysql/conf.d/docker.cnf

#再次重启mysql
service mysql restart

#再次重启docker容器
docker restart 75580b82c2eb

posted on 2024-05-14 11:57  豆豆世界  阅读(1)  评论(0编辑  收藏  举报

导航