现在很多程序使用的 mySQL 版本都是 5.7 ,原因无他,因为稳定。 然而本人今天安装 mySQL 是因为要搭建一套私有的 git 仓库,我选用的是 Gitea ,因为部署简单,对服务器要求不高,我选择的是 mySQL 8 的版本。

环境

上来先说清楚使用环境

mySQLlatest(最新版本:8.0.28
服务器:Centos 7 + docker

拉取镜像

使用以下命令,查询有哪些 mySQL 镜像

docker search mysql

在这里插入图片描述
第一个星星最多的且标注 官方mysql 就是我们所需要的镜像。
这个步骤也可以通过 dicker hub 查看
mysql 的官网仓库为:https://hub.docker.com/_/mysql?tab=tags

在这里插入图片描述

通过以下命令拉取镜像

docker pull mysql:latest

在这里插入图片描述
说明:
mysql 后面不加 latest 也是可以的,默认就是拉去最新版本。

创建容器

通过以下命令查看已下载的镜像

docker images

在这里插入图片描述
见上图中,mysql 就是刚刚下载的镜像

通过以下命令创建并运行容器

docker run -d \
--name mysql \
--restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:latest

解释:
-d : 后台运行
-p:端口映射 本机的端口:docker中的端口
--name :容器起别名
--restart:docker启动的时候随之启动
-e MYSQL_ROOT_PASSWORD :设置mysql的root用户的密码
在这里插入图片描述

测试

通过以下命令查看正在运行的容器

docker ps

在这里插入图片描述
其中 NAMESmysql 的容器就是刚刚创建的容器。

通过以下命令进入容器

# 进入容器
docker exec -it 68a63f41845e  bash 

#登录
MySQL:mysql -u root -p

# 输入密码登录(注:密码输入时是看不见的)

在这里插入图片描述
能进入 mysql 说明已经部署成功了。 接下来就是使用物理机上面的数据库连接工具进行连接测试了,我使用的是 Navicat

在这里插入图片描述
输入连接信息,点击左下角的 “测试连接” 提示 “成功” 说明一切正常。

在这里插入图片描述
以上就是我机器上面的连接截图,至此, docker 安装 mysql 顺利完成了。

无法连接问题解决

在使用过程中,你可能会遇到提示:is not allowed to connent to this MySQL server
下图是从网上借来的,因为我本地已经解决掉了,无法截图。
在这里插入图片描述

出现这个情况,是因为你的 mysql 没有设置允许从远程登陆。

通过以下代码可解决此问题

docker exec -it 68a63f41845e  bash 
mysql -u root -p
use mysql;
update user set host = '%' where user ='root';
flush privileges;
quit;

在这里插入图片描述
完成上面操作就可以了,再回到数据库连接工具试试看。


如果你需要实现数据库自动备份和自动删除备份文件的话,可以阅读文章《每天定时自动备份docker的mysql

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐