基于Docker的Mysql安装

Mysql数据库,是时下最流行的关系型数据库管理系统之一。它体积小、速度快、总体拥有成本低,尤其是社区版开源这一特点,因而一般中小型网站都会选择Mysql作为网站数据库。
Docker,是开源的应用容器引擎,可以让开发者将应用打包到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows服务器中,可以让应用实现开箱即用,大大的简化和提高应用部署的效率。
本篇文章主要介绍基于Docker环境下的Mysql安装流程。具体流程如下:
在这里插入图片描述

环境信息如下:
服务器:Centos 7 64位
安装用户:root。如果使用普通用户安装,需要使用sudo进行授权。

1.启动Docker

在Linux中Docker作为服务项,直接用系统服务启动命令启动即可。

[root@hong ~]# systemctl start docker

启动一次即可。启动完之后,查看下是否启动成功。

[root@hong ~]# ps -ef | grep docker

以上命令主要查看Docker进程是否存在。
在这里插入图片描述

基本上Docker的进程存在就可以证明Docker已经重启好了。也可以进一步验证。输入docker,会输出docker的指令说明。

[root@hong ~]# docker

在这里插入图片描述
能看到指令的说明,说明Docker已经成功启动了。

2.下载Mysql镜像

查看本地仓库中是否有mysql镜像。

[root@hong ~]# docker images

在这里插入图片描述
该命令列出本地仓库中所有的镜像。

结果显示本地是没有mysql镜像的。所以,需要去Docker中央仓库下载。

Docker官方会将一些应用打包成镜像,存放的Docker的中央仓库(Docker Hub),以供开发者使用。
这里要介绍一个docker的指令:search,从Docker 中心仓库中查找镜像列表。
从中央仓库查询mysql镜像,使用下面的指令:

[root@hong ~]# docker search mysql

在这里插入图片描述
STARS表明了镜像的火热程度,也反应了镜像的下载量。OFFICIAL表明是官方发布,而AUTOMATED表明是个人上传到Hub上分享的。我们下载第一个就可以了。

[root@hong ~]# docker pull mysql

在这里插入图片描述
pull:下载镜像。

pull指令主要的功能是从仓库中下载镜像。如果不指定镜像版本号,那么就下载latest版本。否则,下载指定版本。比如下载mysql 5.5版本,指令如下:

[root@hong ~]# docker pull mysql:5.5

3.启动Mysql镜像

查看当前仓库中mysql镜像。

[root@hong ~]# docker images | grep mysql

创建镜像mysql映射的宿主机文件目录。

[root@hong ~]# mkdir -p ~/docker/mysql/conf ~/docker/mysql/logs ~/docker/mysql/data

在这里插入图片描述
接下来,就可以启动mysql了。启动指令如下:

docker run -p 3306:3306 --name mysql1 -v ~/docker/mysql/conf:/etc/mysql/conf.d -v ~/docker/mysql/logs:/logs -v ~/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 -d mysql

在这里插入图片描述
启动成功之后,会返回容器ID。

验证

[root@hong docker]# docker ps | grep mysql

在这里插入图片描述

4.配置Mysql远程连接

进入mysql容器

[root@hong docker]# docker exec -it mysql1 /bin/bash

exec:在正在运行的容器中运行命令。
i : 将当前输入连接到容器,建立交互窗口。
t:分配一个伪终端。
在这里插入图片描述
注意主机名的改变。进入之前是宿主机,进入之后是容器的ID。
进入容器之后,使用配置时的密码进入。
在这里插入图片描述
从官方下载的mysql镜像的root远程和本地的root用户的密码规则和密码都是官方默认的,需要更新本地的。
在这里插入图片描述
具体操作如下:
root登陆数据库之后,修改规则:

alter user 'root' identified with mysql_native_password by 'password';

修改远程root用户密码:

alter user 'root'@'%' identified by '666666';

更新权限:

FLUSH PRIVILEGES; 

5.测试连接

使用SQLyog进行远程连接。
在这里插入图片描述
连接成功。
至此,使用Docker安装mysql已经好了。

6.常见安装问题

6.1.SQLyog连接报Pluging caching_sha2_password could not be loaded

原因:加密规则无法加载。
解决方案:修改成本地方法加密。

root登陆数据库之后,修改规则:

alter user 'root' identified with mysql_native_password by 'password';

更新权限:

FLUSH PRIVILEGES; 

6.2.mysql 1045

Access denied for user ‘root’@’xxx.xxx.xxx.xxx’(using pasword:YES)
原因:mysql库中远程root用户,默认的连接密码不是docker启动mysql时设置的密码。
解决:把root密码修改就可以了。
如果需要修改密码, 可以修改:

alter user 'root'@'%' identified by '666666';

如果没生效,可以更新下权限:

FLUSH PRIVILEGES;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值