Navicat连接远程服务器里docker中mysql的方法(已解决)
1. 开启端口映射
在docker
中,我们需要将允许外界访问的端口通过配置文件映射出来,本文不需要将3306
端口映射,但是该部分还是有实际用途的,因此在此记录。着急可以跳过第一部分。在创建并运行镜像的时候,我们会初始化参数,例如:
docker run -p 20000:22 -p 3000:3000 --name my_docker_sercer -itd docker_image:1.0 # 创建并运行docker_image:1.0镜像
但是,我们有时候会在创建后增加映射端口,此时,我们可以通过修改配置文件的方式处理。
- 在容器外,使用
root
用户登录
docker ps -a # 查看所有容器信息 docker inspect xxx |grep Id # 查看需要添加端口映射的容器的id(xxx是需要添加端口映射的容器的名称)
- 进入目录
/var/lib/docker/containers
如果容器还在运行,需要先停止docker
服务:systemctl stop docker
查看该目录下的所有容器,进入需要增加端口号的容器。
编辑hostconfig.json
添加端口映射(参考其他端口格式):
编辑config.v2.json
公开添加的端口(参考其他端口格式):
- 重启容器:
systemctl start docker # 启动docker服务 docker start kob_server # 后面为自己的容器名称 # 启动容器后记得重启自己的服务(mysql, java, nginx等)
- 到服务器中添加安全组(
ip
可以根据实际需求只放行本地ip
):
2. 修改mysql配置
正文开始。
- 修改mysql中的
root
用户访问权限
将mysql中的user
表的root
用户的host
字段修改为%
:
show databases; use mysql; SELECT user, host FROM user; UPDATE user SET host = '%' WHERE user = 'root'; # 最后记得刷新一下 FLUSH PRIVILEGES;
- 修改配置文件
其实如果我们后面使用ssh
连接容器,这一步修改没有必要,因为我们连接容器后就能够通过127.0.0.1
访问数据库,但是可能有的同学想通过其他当时连接,这里将方法说明。着急的直接进入下一节。
这里有个坑,很多教程修改的是
my.conf
文件,但是mysql8
以后就不在该文件中了,而是在mysqld.cnf
中。
cd /etc/mysql/mysql.conf.d/ sudo vim mysqld.cnf
进入文件之后查找到bind-address
,将这一行注释掉(需要一点点vim
知识)
- 最后重启
mysql
服务
service mysql restart
3. 在navicat中连接mysql
- 在navicat中连接mysql数据库,选择
ssh
:
需要注意的是,端口应选择容器的运行端口,密码是用户登录密码,不是mysql
的密码。
- 然后选择常规:
注意这里的主机是服务器容器中的本地ip
,因为我们是通过ssh
连接到容器了。
- 最后点击测试连接并确定
总结
到此这篇关于Navicat连接远程服务器里docker中mysql的文章就介绍到这了,更多相关Navicat连接远程docker中mysql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySQL SELECT ...for update的具体使用
本文主要介绍了MySQL的SELECT ...for update的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-05-05windows下mysql 5.7.20 安装配置方法图文教程
这篇文章主要为大家详细介绍了windows下mysql 5.7.20 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-09-09
最新评论