超详细的Mysql安装教程

发布于:2022-10-17 ⋅ 阅读:(503) ⋅ 点赞:(0)

我是强哥,一个在互联网苟且的男人,微信搜索【光头强编程】,点个关注不迷路,喜欢文章就支持三连哦


前言

mysql的安装方式有很多种,基本上都是通过下载安装包后安装,通常一个安装包要下载好久,还要去配置系统配置。但是,随着微服务的广泛使用,mysql也可以使用docker进行安装啦,下面就看看mysql是怎么使用docker安装的。


一、Linux下docker的安装

1. CentOS Docker

如图可知Linux使用的操作系统是CentOS系统的,而且还是CentOS 7版本的
在这里插入图片描述

2. 使用 yum 安装 Docker

  • Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker ,使用uname -r来查看
    在这里插入图片描述
  • 安装 Docker,从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE,下面介绍的是Docker CE(社区免费) 的安装与使用
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
  • 使用到的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 从阿里云上获取
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 更新缓存
sudo yum makecache fast
  • 安装Docker
sudo yum -y install docker-ce
  • 启动 Docker
sudo systemctl start docker
  • 查看docker的状态
    ps:需要有容器运行或者是已经下载了容器,这里我的mysql已经安装好了,所以图上会有mysql容器
docker ps

在这里插入图片描述
运行中的容器,证明docker安装成功啦

3.使用get-docker.sh安装 Docker

ps:使用超级用户权限才能操作

  • yum 包更新到最新,使用下面的指令进行操作
sudo yum update
  • 执行 Docker 安装脚本
    使用以下指令以及脚本会直接下载docker.repo源文件并开始安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
  • 启动 Docker
sudo systemctl start docker

验证是否安装成功如上一方式。

4.Docker设置镜像加速

  • 建立Docker组
sudo groupadd docker
  • 添加当前用户到docker组
sudo usermod -aG docker $USER
  • 镜像配置
    因为后续会拉取我们所需要的镜像文件,国内的网速属实是有点慢的,因此我们这里使用的镜像源是阿里云提供的镜像加速,登录并且设置密码之后在左侧的 Docker Hub 镜像站点 可以找到专属加速器地址,复制下来,然后执行命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["你的加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 重新加载配置,并且重启 Docker 服务
systemctl daemon-reload
systemctl restart docker

5.Docker 常用命令

  • 拉取镜像
docker pull
  • 删除容器
docker rm <容器名 or ID>
  • 查看容器日志
docker logs -f <容器名 or ID>
  • 查看正在运行的容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。
  • 删除所有容器
docker rm $(docker ps -a -q)
  • 停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
  • 查看所有镜像
docker images
  • 暴露端口(有时候开发中需要使用的)
# 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口

6.Docker安装结果三连

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、使用Docker安装mysql并运行

1.Mysql创建使用的指令

1.默认拉取最新版本mysql
docker pull mysql

2.拉去指定版本mysql
sudo docker pull mysql:5.7

3.查看拉取的镜像
docker images

4.启动mysql容器(创建镜像实例)
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest

5.var/lib/docker/containers/下查看容器
cd /var/lib/docker/containers/

6.进入mysql容器操作台命令:
docker exec -it mysql bash
mysql登录同普通mysql登录操作

2.Mysql安装结果三连

下面是图片三连哦
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
mysql数据库的操作
在这里插入图片描述


三、本地访问docker创建的mysql

1. 两个问题链接问题的解决

  • 1.弹性公网ip无法ping通
  • 2.docker数据库无法访问

2.问题解决

这两个问题是有下面的两个问题所导致

  • 首先检测对应的云数据库的出入限制规则
    我这里使用的数据是华为云数据库,在做
    在这里插入图片描述
    主要是入方向规则的配置0.0.0.0/0 在这里插入图片描述- 其次进行用户密码的设置
# mysql使用mysql数据库中的user表来管理权限,修改user表就可以修改权限(只有root账号可以修改)

mysql> use mysql;
Database changed

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host                    | user      | password                                                                 |
+--------------+------+-------------------------------------------+
| XXXXXXXXX              | root     | *AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5E      |
| XXXXXXXXXXXX           | root     | *AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5E     |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

【我们访问的用户名和密码是这里】
mysql> grant all privileges  on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host                    | user      | password                                                                 |
+--------------+------+-------------------------------------------+
| localhost              | root       | *AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5E     |
| XXXXXXXXXXXX            | root      | *AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5E     |
| %                       | root      | *AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX5E     |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

总结

微服务的应用现在到处都是,并且企业中使用它门进行开发的情况也越来越多,越来越广泛被使用,所以我们还是要不断的进行微服务的内容及容器的知识学习。

伟大的人生始于知,止于行。行动是第一生产力,关注我,跟我共同进步。

微信公众号扫一扫

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到