SQLyog、navicat连接虚拟机里面docker容器中的mysql
1、Docker 安装 MySQL详细的安装过程可见菜鸟教程(https://www.runoob.com/docker/docker-install-mysql.html)1)拉取镜像docker pull mysql:latest2)查看本地镜像docker images3)运行容器安装完成后,我们可以使用以下命令来运行 mysql 容器:$ do...
1、Docker 安装 MySQL
详细的安装过程可见菜鸟教程(https://www.runoob.com/docker/docker-install-mysql.html)
1)拉取镜像
docker pull mysql:latest
2)查看本地镜像
docker images
3)运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
4)安装成功
通过 docker ps 命令查看是否安装成功:
2、对mysql添加远程登录(重要)
1)查询出docker容器中mysql的container_id
docker ps
2)登录mysql容器,其中mysql就是上面查出来的container_id
docker exec -it mysql bash
mysql -uroot -p
3)授权
GRANT ALL ON *.* TO 'root'@'%';
4)刷新权限
flush privileges;
5)此时,还不能远程访问,因为Navicat/sqlou只支持旧版本的加密,需要更改mysql的加密规则
更改加密规则 password就是启动容器的时候的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
6)更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
7)刷新权限并退出
flush privileges;
exit;//退出mysql
示例
3、建立连接
1)首先确定虚拟机IP
详见(https://blog.csdn.net/qq_35854212/article/details/90749650)
在终端输入命令: ifconfig -a 即可,其中centos的ip地址是ens33条目中的inet值,在navicat for MySQL中需要输入的IP
然后选择连接
2)其他注意事项
1、虚拟机中网络适配器要选择桥接模式,可在虚拟机-》设置-》网络适配器中更改
2 、注意虚拟机防火墙的设置(简单点的话可直接将虚拟机中的防火墙关了)
执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示FirewallD is not running,如下图所示。
通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
更多推荐
所有评论(0)