前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在CentOS7中使用Docker安装MySql

在CentOS7中使用Docker安装MySql

作者头像
oec2003
发布2019-07-19 17:21:15
1.3K0
发布2019-07-19 17:21:15
举报
文章被收录于专栏:不止dotNET不止dotNET

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

上面是百度百科中Docker的介绍,因为Docker的诸多好处,准备在产品中使用,最近做了些技术的预研,本文主要介绍在CentOS7中使用Docker来安装MySql

环境

  • CentOS:7.4
  • Docker: 1.13.1
  • MySql: 8.0.11

下载镜像

在https://hub.docker.com,搜索mysql,结果如下:

选择上图红框的镜像,执行下面命令进行镜像的安装

代码语言:javascript
复制
docker pull mysql/mysql-server

启动MySql容器

执行下面命令来启动容器

代码语言:javascript
复制
docker run -d -p:3307:3306 --name mysqltest mysql/mysql-server

容器启动成功后,这时还不能通过工具连接到MySql,需要进入到MySql中进行相关的设置。

设置MySql

首先执行下面命令查看容器日志,找到MySqlroot账户的密码

代码语言:javascript
复制
docker logs mysqltest

找到下图红框部分就是root账户的密码

执行下面命令进入到容器中,进入容器又很多中方法,参考https://www.cnblogs.com/xhyan/p/6593075.html

代码语言:javascript
复制
docker exec -it mysqltest bash

再执行命令进入到MySql中

代码语言:javascript
复制
mysql -uroot -p

会提示输入密码,密码为上图中的红框部分的密码,如果看到下图欢迎界面表示密码正确,已经进入到MySql的环境中了

修改root账户密码,网上有不少修改密码的Sql语句如下

代码语言:javascript
复制
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password123');

但上面的语句在MySql8.0.11版本中会报错

如果您的版本和我一样,请执行下面代码来修改root密码

代码语言:javascript
复制
alter user 'root'@'localhost' identified by 'password123';

修改完root密码后,可以使用下面代码切换到mysql数据库

代码语言:javascript
复制
use mysql

查看下用户信息

代码语言:javascript
复制
select user,host from user

可以看到roothostlocalhost,说明root账户不能被外部连接,现在来创建一个新的用户,并赋相关的权限让外部可以连接,依次执行下面语句

代码语言:javascript
复制
CREATE USER 'fengwei'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON *.* TO 'fengwei'@'localhost' WITH GRANT OPTION;
CREATE USER 'fengwei'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON *.* TO 'fengwei'@'%' WITH GRANT OPTION;

执行两次exit命令回到CentOS中,执行下面命令重启MySql容器,在容器重启的过程中MySql也就重启了

代码语言:javascript
复制
docker restart mysqltest

此刻我们使用Sqlyog来连接该容器了测试下,发现会报如下错误

执行命令进入到容器中的MySql中,执行下面的Sql语句

代码语言:javascript
复制
ALTER USER 'fengwei'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123';

再用SQLyog进行测试,发现已经连接成功。

总结

本文介绍的方法虽然最终可以连接成功,但MySql的配置文件和数据都在容器内,如果由于配置原因导致容器无法启动,数据内容将会丢失,所以更好的做法是将配置文件和数据存储挂接到宿主机中,下一篇讲介绍怎样在MySql的容器中讲配置文件和数据目录挂接到宿主机中。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止dotNET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 下载镜像
  • 启动MySql容器
  • 设置MySql
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档