乐趣区

Linux环境下使用Docker安装mysql

前言

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

安装

Linux 安装 Docker 网上有详细的教程,在这里不再赘述,有需要的请看 Ubuntu Docker 安装
安装完 Docker 后,如果执行 sudodocker run hello-world 出现

说明 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 命令查看启动是否成功。

4. 进入
我们使用

sudo docker exec -it mysql-test bash

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

mysql -uroot -p123456

命令进入 mysql 环境

注意开头的变化判断命令是否生效。
最后,我们使用

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

命令来允许 root 用户从任意位置登录。

最后打开我们的 navicat 测试

连接成功。

补充

我们通过 sudo docker ps -a 来查看启动的容器后,可以通过 sudo docker stop XXX 来停止和 sudo docker rm XXX 删除容器。XXX 为容器的 ID 值

值得注意的是,我们这里的容器是虚拟机,我们关机后也是保留状态,不用开机后再进行一系列繁琐的命令,而是可以直接使用,如果删除再重建,你的数据表都会消失。

结语

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

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

退出移动版