欢迎来真孝善网,为您提供真孝善正能量书籍故事!

高效解决Docker中MySQL远程连接问题:1251客户端不支持...

时间:11-16 现代故事 提交错误

大家好,今天小编来为大家解答以下的问题,关于高效解决Docker中MySQL远程连接问题:1251客户端不支持...,这个很多人还不知道,现在让我们一起来看看吧!

运行的镜像称为容器,容器启动速度非常快。

搜狗截图20180303145531.png

2、核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用于保存各种打包的软件镜像;

docker镜像(Images):软件打包镜像;放置在docker仓库中;

docker容器(Container):镜像启动后的实例称为容器;容器是一个应用程序或一组独立运行的应用程序

搜狗截图20180303165113.png Docker使用步骤:

1)、安装Docker

2)去Docker仓库找到这个软件对应的镜像;

3)使用Docker运行这个镜像,这个镜像会生成一个Docker容器;

4)容器的启动和停止就是软件的启动和停止;

3、在linux虚拟机上安装docker

步骤:

1.检查内核版本,必须是3.10以上

uname -r

2.安装docker

百胜安装码头工人

3.输入y确认安装

4.启动docker

[root@localhost ~]# systemctl 启动docker

[root@localhost ~]# docker -v

Docker 版本1.12.6,内部版本3e8e77d/1.12.6

5.开机启动docker

[root@localhost ~]# systemctl 启用docker

创建从/etc/systemd/system/multi-user.target.wants/docker.service 到/usr/lib/systemd/system/docker.service 的符号链接。

6.停止docker

systemctl stop docker4、Docker常用命令操作

1)、镜像操作

操作命令说明检索docker search关键字eg:docker search redis 我们经常去docker hub检索镜像的详细信息,比如镜像的TAG。 pull docker pull 镜像名称:tag:tag 可选,tag代表标签,多为软件版本,默认为最新列表docker images 查看所有本地镜像删除docker rmi image-id 删除指定本地镜像https://hub.docker.com/

2)、容器操作

软件镜像(QQ安装程序)—运行镜像—生成容器(运行软件,运行QQ);

步:

1. 搜索图片

[root@localhost ~]# docker 搜索tomcat

2. 拉取镜像

[root@localhost ~]# docker pull tomcat

3.根据镜像启动容器

docker run --name mytomcat -d tomcat:latest

4. docker ps

查看正在运行的容器

5.停止正在运行的容器

docker停止容器id

6.查看所有容器

docker ps -a

7.启动容器

docker启动容器id

8. 删除容器

docker rm 容器ID

9.启动tomcat并进行端口映射

[root@localhost ~]# docker run -d -p 8888:8080 tomcat

-d:在后台运行

-p: 将主机的端口映射到容器中的端口主机端口: 容器内的端口

10. 为了演示目的,Linux 防火墙被简单地关闭。

服务防火墙状态;查看防火墙状态

servicefirewalldstop:暂时关闭防火墙

11.查看容器的日志

docker 日志容器名称/容器ID

更多命令请参见

https://docs.docker.com/engine/reference/commandline/docker/

可以参考各个镜像的文档

3)、安装MySQL示例

//下载mysql

docker 拉mysql

//启动mysql

[root@localhost ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

b874c56bec49fb43024b3805ab51e9097da779f2f572c22c695305dedd684c5f

[root@localhost ~]# docker ps

容器ID 图像命令创建状态端口名称

b874c56bec49 mysql "docker-entrypoint.sh" 4秒前最多3秒3306/tcp mysql01做了端口映射[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434

[root@localhost ~]# docker ps

容器ID 图像命令创建状态端口名称

ad10e4bc5c6a mysql "docker-entrypoint.sh" 4秒前上涨2秒0.0.0.0:3306-3306/tcp mysql02 其他几个高级操作

docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

将主机的/conf/mysql文件夹挂载到mysqldocker容器的/etc/mysql/conf.d文件夹

要更改mysql配置文件,只需要将mysql配置文件放在自定义文件夹(/conf/mysql)中

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

指定mysql的一些配置参数

## 设置mysql服务器的编码

docker run -p 3307:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

----------

mkdir -p /conf/mysql ## 创建多级目录

ls /conf/## 查看指定目录下所有文件

4、远程连接docker中的MySQL遇到的问题(1251)

错误截图:TIM 图片20181129105958.png 原因:mysql 8.0 默认使用caching_sha2_password 认证机制;客户端不支持新的加密方法。

解决方案:

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

步骤:

1、进入mysql容器内部

[root@localhost ~]# docker exec -it mysql01 bash ## mysql01 是容器的别名。您还可以使用容器的id 代替

2、登录mysql

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

输入密码:

欢迎使用MySQL 监视器。命令以; 结尾或g。

您的MySQL 连接ID 是11

服务器版本: 8.0.13 MySQL社区服务器-GPL

版权所有(c) 2000, 2018,Oracle 和/或其附属公司。版权所有。

Oracle 是Oracle Corporation 和/或其公司的注册商标

附属机构。其他名称可能是其各自的商标

业主。

输入“帮助”;或“h”寻求帮助。键入“c”以清除当前输入语句。

3、设置用户配置项

1)查看用户信息

mysql从mysql.user 中选择主机、用户、插件、authentication_string;

+------------+--------------------------------+-------------------- ---+-------------------------------------------------------- ------ ----------------------------------------+

|主持人|用户|插件|身份验证字符串|

+------------+--------------------------------+----------------- ---+-------------------------------------------------------- ------ ----------------------------------------+

| % |根|缓存_sha2_密码| $A$005$HF7;krfwhkKHp5fPenQm4J2dm/RJtbbyjtCUVdDCcboXQw3ALxsif/sS1 |

|本地主机| mysql.infoschema |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机| mysql.session |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机| mysql.sys |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机|根| mysql_native_password | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

+------------+--------------------------------+----------------- ---+-------------------------------------------------------- ------ ----------------------------------------+备注:host为%,表示ip不限制。 localhost表示本机使用了mysql_native_password以外的插件,所以需要修改密码。

2)修改加密方式

更改用户"root"@"%" 通过mysql_native_password BY "123456" 进行识别; ### 123456 mysql登录密码

同花顺特权;然后查看用户信息

mysql从mysql.user 中选择主机、用户、插件、authentication_string;

+------------+--------------------------------+----------------- ---+-------------------------------------------------------- ------ ----------------------------------------+

|主持人|用户|插件|身份验证字符串|

+------------+--------------------------------+----------------- ---+-------------------------------------------------------- ------ ----------------------------------------+

| % |根| mysql_native_password | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

|本地主机| mysql.infoschema |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机| mysql.session |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机| mysql.sys |缓存_sha2_密码| $A$005$这是一个绝不能使用的有效盐和密码的组合|

|本地主机|根| mysql_native_password | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

关于高效解决Docker中MySQL远程连接问题:1251客户端不支持...到此分享完毕,希望能帮助到您。

用户评论

摩天轮的依恋

这篇文章终于帮我看透了,我好久没见过关于 Docker 部署 MySQL 和这个错误码的详细讲解。

    有18位网友表示赞同!

黑夜漫长

远程连接数据库确实是个常考点,希望能通过这篇教程解决1251问题的烦恼。

    有17位网友表示赞同!

浮光浅夏ζ

分享这种教程真的太棒了!很多新手在Docker部署过程中都会遇到各种挑战,这篇文章能指点迷津啊~

    有17位网友表示赞同!

你瞒我瞒

我之前也遇到过这个问题,看来确实要检查环境变量设置呀 !

    有11位网友表示赞同!

涐们的幸福像流星丶

有图文详解说明的教程比较好理解,这样更容易把知识点掌握。

    有13位网友表示赞同!

醉红颜

Docker真是个好工具,但有时候配置的确需要细心关注才能避免问题!

    有20位网友表示赞同!

娇眉恨

解决这个问题还挺考验学习能力啊!感谢分享这份宝贵经验!

    有18位网友表示赞同!

∞◆暯小萱◆

看标题就知道,这篇文章要解决远程连接MySQL遇到的问题。希望讲解简洁易懂!

    有15位网友表示赞同!

放肆丶小侽人

做开发工作确实离不开数据库,Docker部署更方便,希望能学到一些新技巧!

    有5位网友表示赞同!

漫长の人生

之前也试过远程连接MySQL,很多细节都不知道如何设置,这篇教程希望能介绍到位!

    有12位网友表示赞同!

回忆未来

学习新的技术知识总是很有挑战性,感谢作者分享文章!

    有18位网友表示赞同!

走过海棠暮

我对Docker的了解并不多,希望这篇文章能让我进一步了解它的应用场景。

    有9位网友表示赞同!

南初

遇到问题真是头疼啊!还好现在这种教程很丰富了!

    有8位网友表示赞同!

冷月花魂

远程连接数据库确实很重要,一篇关于MySQL问题的解决方法分享总是很有价值的!

    有18位网友表示赞同!

杰克

Docker部署 MySQL 效率更高,而且安全性也更高吧?

    有9位网友表示赞同!

墨城烟柳

这篇文章内容很有用,我相信很多人都会受益!

    有17位网友表示赞同!

久爱不厌

喜欢这种贴近实际需求的教程!

    有15位网友表示赞同!

嘲笑!

分享这类文章真是太棒了!可以帮助很多朋友解决实际问题。

    有5位网友表示赞同!

拥抱

学习新的技术和工具总能提升自己的竞争力!

    有13位网友表示赞同!

熟悉看不清

感谢作者分享这份宝贵的经验,希望能深入了解Docker部署MySQL的细节。

    有9位网友表示赞同!

【高效解决Docker中MySQL远程连接问题:1251客户端不支持...】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活