目录

  • 前言
  • 1. 安装mysql
  • 2. 开启远程连接
  • 3. 防火墙
  • 4. 入站规则
  • 5. 连接mysql

前言

在云服务器上通过docker搭建的mysql
本地的navicat连接mysql的时候一直出现这个错误
问题如下所示

2003 - Can’t connect to MySQL server on 'xxx'(10060)

截图如下所示:

对于这个问题,可能是少了某些细节(一直出现这个,对此一个操作一个操作的检查)
以下文章从零到有搭建mysql
并且通过navicat连接mysql的图文操作

1. 安装mysql

在服务器上通过docker安装mysql
安装mysql 5.7的镜像:sudo docker pull mysql:5.7

拉取镜像之后,可以通过检查镜像是否有安装 docker images
创建实例并且启动:

docker run -p 3306:3306 --name mysql
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.7

代码模块的说明:

  • -p为端口映射,将其linux的3306端口与mysql容器内部的3306端口进行映射
  • -v为挂载(etc为配置文件,log为日志文件,lib为配置文件)
    将其mysql容器内部的文件挂载到linux中,每次变动都会在linux显示,而不用进入到容器内部查看
    -e初始化123456用户密码

修改配置文件:(主要是编码格式的配置文件修改)
因为容器内部已经映射文件到linux中,在linux中修改即可
具体命令如下:vim /mydata/mysql/conf/my.conf

[client]
default-character-set=utf8[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

查看其docker 中的mysql是否有映射:
通过docker exec -it mysql /bin/bash进入容器,并且查看容器中的文件

确认映射成功之后,通过docker restart mysql容器id

2. 开启远程连接

默认mysql是不可以远程连接的

通过上面的docker进入容器之后
登录mysql:mysql -u root -p
密码为123456,这个密码是docker安装mysql配置的

开启远程连接:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ,(这个密码为123456,是之后远程连接mysql的密码)
刷新生效:FLUSH PRIVILEGES;

再次查看:select host,user,plugin,authentication_string from mysql.user;


可以看到root授权的host为%,即为远程访问已经开启

3. 防火墙

可以开启一个端口映射出去或者直接关闭防火墙
具体防火墙的知识点可看我之前的文章:

  1. ubuntu:防火墙配置详细讲解(全)
  2. linux之防火墙命令firewall、iptable以及端口号等详解诠释(全)

如果只开启一个防火墙端口设置:(也就是3306mysql的端口)
查看开启的端口号:firewall-cmd --list-ports
永久开启一个3306的端口号:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:firewall-cmd --reload
再次查看端口号是否开启:firewall-cmd --list-ports

截图如下:


另一种方式是直接关闭

或者直接关闭防火墙:systemctl stop firewalld.service
查看防火墙的状态:systemctl status firewalld.service

4. 入站规则

云服务器的安全规则需要配置入站规则
具体什么服务器可看其官网的说明,(我是华为云服务器):配置安全组规则

配置入站规则如下:


配置成功之后

在linux中可以通过命令行检查端口号是否打开,通过lsof、netstat
具体的使用方法为lsof -i查看端口是否开放,netstat提供主机的网络相关信息,可通过netstat -anp

大致命令:netstat -anp | grep 3306
截图如下:(有这个配置说明端口映射已经成功)

5. 连接mysql

navicat连接mysql
ip地址为服务器而不是docker的,账号密码为mysql的而不是服务器的

在本地ping ip地址可以通信么
大致ip为云服务器的弹性ip地址而不是私有地址(保证可以通信)

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

连接云服务器Docker中的Mysql 详细图文操作(全)相关推荐

  1. 远程连接不上docker中的mysql解决办法

    远程连接不上docker中的mysql解决办法 查看docker中线程,发现mysql中行动状态 我首先删除docker中的映射(先停止,再删除): //停止运行mysql01 dcoerk stop ...

  2. docker swarm MySQL_容器与云|在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理...

    本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器 ...

  3. 远程连接云服务器中的mysql数据库_云服务器远程连接mysql数据库

    首先需要在云服务器上,下载安装好mysql与Navicat. mysql下载好以后,打开云端的开始,找到mysql的命令窗,进入输入自己的mysql密码,稍等片刻进入mysql数据库 进入之后输入下列 ...

  4. 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...

    一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...

  5. 点歌机一直显示连接服务器中,点歌机正在连接云服务器

    点歌机正在连接云服务器 内容精选 换一换 文档数据库服务提供使用数据管理服务(Data Admin Service,简称DAS).内网和公网的连接方式.文档数据库服务默认为您开通了远程主机登录权限,推 ...

  6. Navicat连接云服务器MySQL数据库(华为云)

    本文所用环境:华为云弹性服务器:Linux操作系统:CentOS 7.6 64bit with ARM (64-bit) 文章目录 一.前期准备 二.Navicat连接云服务器数据库 三.可能出现的问 ...

  7. 【MySQL】在云服务器上安装配置mysql,并使用IDEA连接

    在云服务器上安装配置mysql 前言 1.Mysql安装 2.设置密码 3.防火墙开放3306端口 4.配置mysql默认编码为utf-8 5.在云服务器代理商的控制台放行3306端口 6.IDEA中 ...

  8. docker连不上宿主机mysql_宿主机连接docker中的mysql

    宿主机连接docker中的mysql dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 3306: ...

  9. Docker中部署mysql后SpringBoot连接时提示表不存在(修改表名忽略大小写)

    场景 Docker中部署mysql数据库: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99213563 在上面使用Docker ...

最新文章

  1. 为什么机器学习项目非常难管理?
  2. python语言培训班-学python培训班需要多久?深圳Python培训
  3. 论文被拒怎么办?(下)
  4. JMeter专题系列(二)录制脚本
  5. AngularJS中自定义过滤器
  6. SpringBoot获取ApplicationContext
  7. 易盛极星期货量化教学
  8. Android系统下内存使用情况与监测
  9. UC浏览器云标签怎么用 UC浏览器云标签使用方法
  10. javascript实现页面中回到顶部功能
  11. 计算机新安装系统后桌面上有什么图标,手把手教你全新安装完win10系统后如何设置显示桌面图标-系统操作与应用 -亦是美网络...
  12. 移动前端开发与web前端开发的区别
  13. 硅谷课堂的所有流程图和总结
  14. 杂感20150311
  15. 人才补贴,正式取消?
  16. 谷歌chrome浏览器源码分析
  17. Java-pdf无限压缩方案-优化内存问题
  18. 如何屏蔽百度右侧推荐和热搜
  19. 2013年07月15日
  20. Web 用户体验设计提升指南

热门文章

  1. Linux-(16)管道和重定向
  2. 区块链学习之Web3j入门(三):状态与交易
  3. 村中老年教师的计算机能力现状,师生信息素养现状与提升策略论文
  4. 迭代器遍历,增强for遍历
  5. 通过反射为对象属性赋值
  6. 微信小程序border padding margin
  7. matlab 序贯相似性,序贯相似性检测算法(SSDA)实现图像匹配
  8. 高中计算机教师证试题,2019下半年高中信息技术教师资格证面试试题(精选)第二批...
  9. 单片机串口——队列的使用
  10. 吉林大学计算机应用专业导师,吉林大学计算机科学与技术学院陈海鹏教授