Docker部署mysql远程连接 解决2003的问题

 更新时间:2021年03月18日 14:57:03   作者:ME_邱康  
这篇文章主要介绍了Docker部署mysql远程连接 解决2003错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

连接MySQL

这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙。

开放端口

firewall-cmd --add-port=3306/tcp --permanent
// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --reload
// 重新载入

关闭防火墙

systemctl stop firewalld
systemctl enable iptables
// 设置开机启动
firewall-cmd --reload
// 重新载入

firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld

开机禁用 : systemctl disable firewalld

开机启用 : systemctl enable firewalld

systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

补充:Docker部署mysql远程连接 解决1251

原因:

mysql 8.0 默认使用 caching_sha2_password 身份验证机制,客户端不支持新的加密方式。

解决方案:

修改用户(root)的加密方式

步骤:

1. 进入mysql容器内部

[root@localhost ~]# docker exec -it javakfmysql bash ## javakfmysql是容器的别名,这里也可以用容器的id代替

2. 登录mysql

root@e285125c99d6:/# mysql -u root -p

3. 设置用户配置项

查看用户信息

mysql> select host,user,plugin,authentication_string from mysql.user; 
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host  | user    | plugin    | authentication_string             |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| %   | root    | caching_sha2_password | $A$005$HF7;krfwhkKHp5fPenQm4J2dm/RJtbbyjtCUVdDCcboXQw3ALxsif/sS1 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys  | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root    | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9        |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+

备注:host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password

修改加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; ### 123456 mysql的登录密码
flush privileges;

然后再查看用户信息

mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host  | user    | plugin    | authentication_string             |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| %   | root    | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9        |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys  | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root    | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9        |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Docker使用run命令部署Nginx的完整指南

    Docker使用run命令部署Nginx的完整指南

    容器化技术正在彻底改变现代应用的部署方式,而 Docker 作为这一领域的先驱,为开发者提供了快速构建、交付和运行应用的能力,下面小编就为大家介绍一下Docker如何通过run命令部署Nginx吧
    2025-03-03
  • docker容器通过ping直接运行获取公网IP操作

    docker容器通过ping直接运行获取公网IP操作

    这篇文章主要介绍了docker容器通过ping直接运行获取公网IP操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker Compose之Sidecar模式详解

    Docker Compose之Sidecar模式详解

    这篇文章主要介绍了Docker Compose之Sidecar模式,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 如何基于Dockerfile构建tomcat镜像

    如何基于Dockerfile构建tomcat镜像

    这篇文章主要介绍了如何基于Dockerfile构建tomcat镜像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • idea 连接远程 docker 并部署项目到 docker的过程

    idea 连接远程 docker 并部署项目到 docker的过程

    这篇文章主要介绍了idea连接远程docker并部署项目到docker,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • 利用Docker搭建Nexus私有仓库实现Maven私服

    利用Docker搭建Nexus私有仓库实现Maven私服

    Maven大家应该都比较熟了,我这里就用安卓人狂喜的Gradle来演示一下,在build.gradle中编写脚本即可上传,接下来通过本文给大家介绍下利用Docker搭建Nexus私有仓库实现Maven私服的问题,感兴趣的朋友一起看看吧
    2022-01-01
  • IDEA集成Docker实现一键部署的详细过程

    IDEA集成Docker实现一键部署的详细过程

    这篇文章主要介绍了IDEA集成Docker实现一键部署,Docker基于Windows集成IDEA,本文分步骤通过图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Docker容器迁移到其他服务器的5种方法详解

    Docker容器迁移到其他服务器的5种方法详解

    这篇文章主要介绍了Docker容器迁移到其他服务器的5种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Docker端口映射后,外机访问不了的问题及解决

    Docker端口映射后,外机访问不了的问题及解决

    Docker端口映射后外机访问不了的问题可能包括:网络配置错误(需与宿主机在同一网段)、容器未启动、防火墙设置问题(需关闭或开放映射端口)、未开启IP转发
    2025-02-02
  • Elasticsearch/Kibana密码设置方法

    Elasticsearch/Kibana密码设置方法

    这篇文章主要介绍了Elasticsearch/Kibana密码设置,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论