前言
前几天在跑一个项目的时候,后台死活起不起来,看一眼报错信息,发现我的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的强大之处,待日后细心体会。
在此感谢小伙伴在这过程中的悉心指导。
本文作者:河北工业大学梦云智开发团队 赵凯强