1、确保虚拟机有docker环境,docker安装请参考:

        https://blog.csdn.net/xu12387/article/details/86229212

2、拉取mysql镜像,这里采用的是网易云加速地址mysql5.7版本

          拉取镜像:

docker pull hub.c.163.com/library/mysql:5.7

 3、启动mysql容器

docker run --name mysql -v /home/mysql/datadir:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 hub.c.163.com/library/mysql:5.7

        参数说明:

--name:容器名
--p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器
-privileged=true 授权执行
-i: 以交互模式运行容器
MYSQL_ROOT_PASSWORD:数据库密码(自己设置)  

hub.c.163.com/library/mysql   镜像名
                       :5.7   版本号

hub.c.163.com/library/mysql:5.7   5.7为版本号 不加版本号的话会默认下载最新版的mysql

版本号利用 docker images 查看镜像  tag列为版本号  这里我们的版本号为5.7

4、进入mysql容器内,连接mysql

docker exec -it 容器名或者ID /bin/bash
mysql -hlocalhost -uroot -p123456

 

如连接报 Access denied for user 'root'@'localhost' (using password: YES) ,可能是你的mysql的挂载目录已经存在,并且先前执行启动过mysql设置过密码,这里挂载目录会保持第一次的mysql密码。先停止容器并删除,然后删除容器的挂在目录,我这里是/home/mysql ,删除这个目录,然后重新执行步骤3

      至此,docker安装mysql 成功!

 5、修改密码:

update mysql.user set authentication_string=password('新密码') where user='root' ;

   然后刷新mysql:

 flush privileges;

 

 

6、如果远程连接报 Access denied for user 'root'@'localhost' (using password: YES)

     进入mysql容器登陆mysql,执行:

update mysql.user set authentication_string=password('新密码') where user='root' ;

   然后刷新mysql:

 flush privileges;

  此时这个错误引起的远程连接问题就解决啦!

 

  最后提醒大家开启防火墙的记得开放3306端口哦,不然肯定远程连接不到!

  开放防火墙指定端口:https://blog.csdn.net/xu12387/article/details/88555418

 

  相关文章docker安装mysql8

  相关文章springboot2(二)mybatis的使用

  相关文章springboot2(三)jpa的使用

     

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐