IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 连接云服务器Docker中的Mysql 详细图文操作(全) -> 正文阅读

[系统运维]连接云服务器Docker中的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地址而不是私有地址(保证可以通信)

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:52:42  更:2022-07-21 21:54:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 1:42:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码