本人这次安装的mysql 5.7版本。
参考文章为
mysql官网 https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-getting-started.html
docker hub https://hub.docker.com/_/mysql/
runoob http://www.runoob.com/docker/docker-install-mysql.html
本来想使用Dockerfile安装,但是尝试安装5.7、5.6版本都失败了,有可能是我的虚拟机问题或者网络问题,安装了一天也没成功,只能暂时放弃,使用拉去镜像,直接运行的简单的方式来,后期再想办法使用Dockerfile。
1、下载镜像
docker pull mysql/mysql-server:5.7
2、创建并启动容器
docker run --name mysql5.7 -p 3306:3306 --mount type=bind,src=/home/xijie/app/mysql-client/data,dst=/var/lib/mysql --mount type=bind,src=/home/xijie/app/mysql-client/my.cnf,dst=/etc/my.cnf -d mysql/mysql-server:5.7
3、获取root用户的密码,由于在docker run中未指定密码,所以密码是随机生成的,需要在logs中得到。
docker logs mysql5.7 2>&1 | grep GENERATED
其中msyql5.7为刚刚创建的容器名称
4、进入mysql中重置密码
docker exec -it mysql5.7 mysql -uroot -p
其中msyql5.7为容器名称,输入该命令后,然后输入第三步获取的密码。
接下来就进入mysql命令中,然后输入如下命令进行密码重置。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
其中'password'可以替换成自己想社的密码。
5、然后重启该mysql容器,输入
docker exec -it mysql5.7 mysql -uroot -p
然后按提示输入新设密码,检验新密码是否正确。
6、外界电脑通过navicat连接该mysql容器服务器,报错。解决方案如下:
https://blog.csdn.net/zhizhuodewo6/article/details/86608569
先进入容器的msyql,命令如下:
docker exec -it mysql5.7 mysql -uroot -p
然后
mysql>update user set host = '%' where user = 'root';
即可,即将root用户的允许连接地址由localhost改为任意。
7、这样msyql部署完毕,具体参考mysql官网。
https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-getting-started.html
由于mysql提供的dockerfile不支持centos,如需用dockerfile,需要自己修改官网的dockerfile去做。