广告位联系
返回顶部
分享到

Navicat连接远程服务器里docker中mysql的方法(已解决)

Mysql 来源:互联网 作者:佚名 发布时间:2024-04-16 21:48:55 人浏览
摘要

1. 开启端口映射 在docker中,我们需要将允许外界访问的端口通过配置文件映射出来,本文不需要将3306端口映射,但是该部分还是有实际用途的,因此在此记录。着急可以跳过第一部分。在创建

1. 开启端口映射

在docker中,我们需要将允许外界访问的端口通过配置文件映射出来,本文不需要将3306端口映射,但是该部分还是有实际用途的,因此在此记录。着急可以跳过第一部分。在创建并运行镜像的时候,我们会初始化参数,例如:

1

docker run -p 20000:22 -p 3000:3000 --name my_docker_sercer -itd docker_image:1.0 # 创建并运行docker_image:1.0镜像

但是,我们有时候会在创建后增加映射端口,此时,我们可以通过修改配置文件的方式处理。

  • 在容器外,使用root用户登录

1

2

docker ps -a # 查看所有容器信息

docker inspect xxx |grep Id # 查看需要添加端口映射的容器的id(xxx是需要添加端口映射的容器的名称)

  • 进入目录/var/lib/docker/containers

如果容器还在运行,需要先停止docker服务:systemctl stop docker

查看该目录下的所有容器,进入需要增加端口号的容器。

编辑hostconfig.json添加端口映射(参考其他端口格式):

编辑config.v2.json公开添加的端口(参考其他端口格式):

  • 重启容器:

1

2

3

systemctl start docker # 启动docker服务

docker start kob_server # 后面为自己的容器名称

# 启动容器后记得重启自己的服务(mysql, java, nginx等)

  • 到服务器中添加安全组(ip可以根据实际需求只放行本地ip):

2. 修改mysql配置

正文开始。

  • 修改mysql中的root用户访问权限

将mysql中的user表的root用户的host字段修改为%:

1

2

3

4

5

6

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中。

1

2

cd /etc/mysql/mysql.conf.d/

sudo vim mysqld.cnf

进入文件之后查找到bind-address,将这一行注释掉(需要一点点vim知识)

  • 最后重启mysql服务

1

service mysql restart

3. 在navicat中连接mysql

  • 在navicat中连接mysql数据库,选择ssh:

需要注意的是,端口应选择容器的运行端口,密码是用户登录密码,不是mysql的密码。

  • 然后选择常规:

注意这里的主机是服务器容器中的本地ip,因为我们是通过ssh连接到容器了。

  • 最后点击测试连接并确定

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计