Linux环境使用docker安装mysql8.0.20

  1. 先拉取镜像:
    docker pull mysql:8.0.20
    
    重要 !!!
    ps: 鉴于在虚拟机配置总是外部连接不上mysql的问题:直接换个镜像  docker pull springbig/mysql8-bb 
    	 这个镜像无需额外配置,直接启动即可,已经默认配置好了
    	 第15个步骤改下镜像的名字
    
    	docker run \
    	-p 3306:3306 \
    	--name mysql8 \
    	--privileged=true \
    	--restart unless-stopped \
    	-v /home/mysql8/conf/my.cnf:/etc/mysql/my.cnf \
    	-v /home/mysql8/logs:/logs \
    	-v /home/mysql8/data:/var/lib/mysql \
    	-v /etc/localtime:/etc/localtime \
    	-e MYSQL_ROOT_PASSWORD=111111 \
    	-d springbig/mysql8-bb 
    	 
    
  2. 查看镜像:
    docker images
    
    在这里插入图片描述
  3. 运行容器:
    docker run  --name mysql8 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.20
    
  4. 查看容器运行日志,没有报错继续:
    docker logs mysql8
    
  5. 进入容器内部:
    docker exec -it mysql8 /bin/bash
    
  6. 查看my.cnf文件:
    cat /etc/mysql/my.cnf
    
  7. 退出容器:
    exit
    
  8. 在宿主机上创建一个目录用于挂载数据(我这里在home创建,你们随意):
    mkdir -p /home/mysql8/conf /home/mysql8/data
    如果后面没有权限需要授权: 
    chmod -R 755 /home/mysql8/
    
  9. 将my.cnf拷贝到宿主机:
    docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 
    docker cp mysql8:/etc/mysql/my.cnf /home/mysql8/conf
    
  10. 修改配置my.cnf,可以根据自己的特定需求更改,这个文件要挂载容器的,这里要注意的是配置文件中的datadir属性目录要和容器的目录以及挂载的容器目录一致,不要随意更改。我这边加了这两个属性,设置字符集
    vi /home/mysql8/conf/my.cnf
    打开文件后添加两个属性:
    character_set_server = utf8mb4
    collation_server = utf8mb4_bin
    
  11. 停止容器:
    docker stop mysql8
    
  12. 删除容器:
    docker rm mysql8
    
  13. 进入刚刚创建的目录:
    cd /home/mysql8
    
  14. 创建文件:
    vi mysql8-docker-run.sh
    
  15. 复制下面的脚本到创建的文件中,密码MYSQL_ROOT_PASSWORD设置成了6个1:
    #!/bin/sh
    docker run \
    -p 3306:3306 \
    --name mysql8 \
    --privileged=true \
    --restart unless-stopped \
    -v /home/mysql8/conf/my.cnf:/etc/mysql/my.cnf \
    -v /home/mysql8/logs:/logs \
    -v /home/mysql8/data:/var/lib/mysql \
    -v /etc/localtime:/etc/localtime \
    -e MYSQL_ROOT_PASSWORD=111111 \
    -d mysql:8.0.20
    
  16. 查看:
    在这里插入图片描述
  17. 执行:
    sh mysql8-docker-run.sh
    
  18. 再次查询日志是否报错:
    docker logs mysql8
    
  19. navicat 测试:
    在这里插入图片描述
  20. 进入挂载的宿主机data目录:
    cd /home/mysql8/data
    
  21. ls命令查看数据:
    在这里插入图片描述
  22. 使用navicat创建test数据库以及test数据表,然后再次ls 查看,多了一张test:在这里插入图片描述
  23. 进入容器,并查看容器的datadir对应的目录:
	docker exec -it mysql8 /bin/bash
	cd /var/lib/mysql
  1. ls查看发现也多了一张test:
    在这里插入图片描述
  2. 使用exit退出容器,然后执行停止并删除mysql8容器的命令:
    docker stop mysql8
    docker rm mysql8
    
  3. 查看状态确定已经被删除:
    docker ps -a
    
    在这里插入图片描述
  4. 执行刚刚编写的脚本创建mysql8容器:
    sh /home/mysql8/mysql8-docker-run.sh
    
  5. 再次使用navicat连接发现test依然存在,说明数据挂载成功:
    在这里插入图片描述
  6. 如果执行命令出错,记得查看日志哦! docker logs mysql8
如果提示Access denied for user ‘root‘@‘localhost‘ (using passwor is “YES“)
修改配置文件,
[mysqld]下添加一行
skip_grant_tables

然后进入容器内部
docker exec -it 容器id /bin/bash
执行:mysql -uroot -p

# 首次登录修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

use mysql;
# root用户配置host='%'  表示root账户可以通过远程连接登录
update user set host='%' where user='root';

flush privileges;


Docker是一种轻量级的虚拟化技术,可以让开发者在同一台主机上运行多个独立的容器,每个容器都拥有自己的操作系统、应用程序等。这种技术可以大大提高应用程序的开发效率和部署效率,同时还可以节省硬件资源的消耗。本文将介绍如何在Docker安装MySQL8.0.20。 步骤1:安装Docker 首先需要安装Docker,可以从Docker官方网站下载Docker安装包,在安装之前需要检查操作系统的版本是否符合要求,Docker要求操作系统版本为CentOS 7或者Ubuntu 14.04/16.04/18.04,如果操作系统版本符合要求,可以按照官方文档进行安装。 步骤2:搜索MySQL8.0.20DockerHub上搜索MySQL8.0.20的镜像,可以使用docker search命令查找:docker search mysql:8.0.20。在搜索结果中找到适用于自己系统的镜像,根据镜像的名称可以进行下载。 步骤3:拉取MySQL8.0.20镜像 使用docker pull命令从DockerHub上拉取MySQL8.0.20的镜像:docker pull mysql:8.0.20。这一步可能会比较耗时,取决于网络情况。 步骤4:运行MySQL8.0.20容器 使用docker run命令启动MySQL8.0.20容器,同时需要将容器中MySQL的端口映射到主机上的一个端口上: docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20 解释一下: -p参数将容器MySQL数据库的端口3306映射到主机上的端口3306,这样就可以直接通过主机访问MySQL数据库了。 --name参数为容器指定一个名称,这里指定为mysql。 -e参数设置MySQL数据库的密码,这里设置为123456。 -d参数表示后台运行MySQL8.0.20容器。 步骤5:进入MySQL数据库 启动MySQL8.0.20容器后,可以使用docker ps命令查看正在运行的容器,如果mysql容器正在运行,则可以使用docker exec命令进入容器: docker exec -it mysql /bin/bash 这样就可以进入到MySQL容器的控制台,使用mysql命令登录MySQL数据库: mysql -uroot -p123456 如果登录成功,说明已经在Docker安装成功了MySQL8.0.20。如果需要对容器进行管理,可以使用docker stop、docker rm等命令停止、删除容器,也可以使用docker start、docker restart等命令启动、重启容器。 总结 在Docker安装MySQL8.0.20比较简单,只需要下载镜像、启动容器,并进行端口映射和密码设置即可。对于开发和测试人员来说,采用Docker进行MySQL部署可以大大提高开发效率,方便快捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值