第一步:学习下docker 命令
查看镜像 docker images;
查看正在运行的容器 docker ps -a ;
注意如果想要卸载镜像首先需要先把所有的容器删了
删除容器命令: docker rm 容器id ; 删除镜像命令 : docker rmi 镜像id
启动容器 docker start 容器id 停止容器 docker stop 容器id
第二步:学会使用docker命令本地安装mysql
先拉取mysql镜像
-
docker pull mysql:5.6
-
docker pull mysql:5.7
-
docker pull mysql:8.0
创建并启动容器
docker run -p 3316:3306 --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
docker run -p 3317:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker run -p 3318:3306 --name mysql80 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
弄好之后就可以在服务器上运行了,想通过本地化工具连接暂时是不行的。还需要设置下权限
docker exec -it mysql80 bash
mysql -P 3306 -u root -p
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
这样5.6和5.7 的是可以通过本地工具连接的
解决远程连接mysql8.0的问题。
由于mysql8.0默认的密码加密方式是 caching_sha2_password,而目前大多数人使用的navicat版本是不支持的
解决办法:
1. docker exec -it mysql bash 进入容器
2. mysql -uroot -pxxxxxx 进入mysql
3. use mysql; 使用mysql数据库
4. 修改User表,ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
123456即为密码
5. FLUSH PRIVILEGES; 刷新即可
mysql 5.5 版本修改密码:
use mysql;
update mysql.user set password=password('111111') where user='root';
FLUSH PRIVILEGES;