现在很多程序使用的 mySQL
版本都是 5.7
,原因无他,因为稳定。 然而本人今天安装 mySQL
是因为要搭建一套私有的 git
仓库,我选用的是 Gitea
,因为部署简单,对服务器要求不高,我选择的是 mySQL 8
的版本。
环境
上来先说清楚使用环境
mySQL
:latest
(最新版本: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
其中 NAMES
为 mysql
的容器就是刚刚创建的容器。
通过以下命令进入容器
# 进入容器
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》