centos7.6用连接docker安装的mysql
一、环境说明
1.本地机系统:Windows10专业版
2.linux系统版本:centos7.6.1810
3.docker版本:19.03.13
4.拉取好mysql镜像:mysql:8.0.22、mysql:5.7.32
5.window的连接mysql客户端工具:navicat
6.centos关闭防火墙,为本机连接centos里面的mysql做准备
二、安装连接mysql:5.7.32演示
1.拉取镜像,并运行mysql:5.7.32容器
docker pull mysql:5.7.32
docker run -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 --name mysql01 mysql:5.7.32
- -e MYSQL_ROOT_PASSWORD=root 设置mysql的root用户密码为root
- -d 后台运行
- -p 3306:3306 宿主机(centos)的3306端口映射到容器内的3306端口
- –name mysql01 自定义容器名
- mysql:5.7.32 容器用的镜像
2.直接用navicat连接上centos的mysql即可
三、安装连接mysql:8.0.22演示
1.拉取镜像,并运行mysql:8.0.22容器
docker pull mysql:8.0.22
docker run -e MYSQL_ROOT_PASSWORD=root -d -p 3307:3306 --name mysql02 mysql:8.0.22
- -e MYSQL_ROOT_PASSWORD=root 设置mysql的root用户密码为root
- -d 后台运行
- -p 3307:3306 宿主机(centos)的3307端口映射到容器内的3306端口
- –name mysql02 自定义容器名
- mysql:8.0.22 容器用的镜像
2.设置密码规则、更新密码
因为mysql8和mysql5不一样,mysql8有个密码加密规则,这样要做一下调整才能用navicat来连接centos里的mysql8
进入到mysql8.0.22镜像运行的容器
docker exec -it mysql02 /bin/bash #mysql02是容器名
进入容器内的mysql服务
mysql -uroot -proot #用户密码都是root
在mysql命令行操作
use mysql; #设置当前使用mysql数据库
select host,user from user; #查看host以及对应用户
#更新远程连接mysql的root用户登录密码为123456
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
- 这样一来,远程连接的时候,输入帐密:root 123456即可连接mysql8
- 因为改的是’root’@’%’,所以centos本地要连接mysql8,还是要用之前设置好的密码root
- 要想同步centos本地密码也为123456,可以再运行一次下面命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
3.更多mysql命令参考,需要可自取
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
use mysql; #设置当前使用mysql数据库
select host,user from user; #查看host以及对应用户
update user set host = '%' where user = 'root'; #从任何主机可以通过root用户登录mysql
grant all privileges on *.* to 'root'@'%'; #给root所有权限
flush privileges; #刷新,使修改生效
quit; #退出mysql命令行,转为centos命令行