Linux环境下使用Docker安装mysql

前言

前几天在跑一个项目的时候,后台死活起不起来,看一眼报错信息,发现我的mysql版本太旧了不能用。因为我用的是xampp,版本是跟着xampp版本走的。网上给出的解决办法是运行命令:mysql_upgrade -u root -p    更新mysql库,但是在我这里不能使用。在好友的建议下我决定安装docker。
image.png

安装

Linux安装Docker网上有详细的教程,在这里不再赘述,有需要的请看Ubuntu Docker 安装
安装完Docker后,如果执行sudodocker run hello-world出现
image.png
说明docker安装成功。
接下来我们用docker安装mysql。
1.我们先可以使用

sudo docker search mysql

来查看可用版本,但是我们选择稳定的5.7版本作为我们的安装版本
2.拉取mysql镜像

docker pull mysql:5.7

如果下载速度缓慢,建议更换国内源
首先修改或者新增/etc/docker/daemon.json文件,内容改为

{
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
}

保存退出,如果下载还是缓慢,建议多换几个源试试这篇文章提供了很多国内原。
保存后重启docker服务。

service docker restart

再次进行pull mysql。
安装好后,我们通过sudo docker images来查看是否正确安装好mysql.
3.运行mysql容器
安装完成后,我们使用

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

来运行mysql容器
--name mysql-test是我们起的容器名字
-p 3306:3306是映射服务的3306端口到宿主机的3306端口,我们访问的时候访问3306端口。
MYSQL_ROOT_PASSWORD=123456 我们设置的root用户密码
mysql:5.7 设置启动的mysql版本。
成功后,我们使用sudo docker ps -a命令查看启动是否成功。
image.png
4.进入
我们使用

sudo docker exec -it mysql-test bash

进入刚才我们创建的容器,然后通过

mysql -uroot -p123456

命令进入mysql环境
image.png
注意开头的变化判断命令是否生效。
最后,我们使用

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '';

命令来允许root用户从任意位置登录。
image.png
最后打开我们的navicat测试
image.png
连接成功。

补充

我们通过sudo docker ps -a来查看启动的容器后,可以通过sudo docker stop XXX来停止和sudo docker rm XXX删除容器。XXX为容器的ID值
image.png
值得注意的是,我们这里的容器是虚拟机,我们关机后也是保留状态,不用开机后再进行一系列繁琐的命令,而是可以直接使用,如果删除再重建,你的数据表都会消失。

结语

初次使用docker,还不知道docker的强大之处,待日后细心体会。
在此感谢小伙伴在这过程中的悉心指导。

本文作者:河北工业大学梦云智开发团队 赵凯强

阅读 598

推荐阅读