MySQL 运维实战课
张新铭(俊达)
云掣科技资深数据库专家,前淘宝网、支付宝数据库专家
412 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 4 讲/共 41 讲
第一章 MySQL基础运维 (3讲)
MySQL 运维实战课
15
15
1.0x
00:00/00:00
登录|注册

03|数据库连接问题诊断分析

你好,我是俊达。
今天我们来聊一聊数据库连接的一些事情。在这里,连接这个词有两个意思。首先连接是一个动词,表示客户端连接到数据库的这个过程。其次连接还是一个名词,表示客户端和服务器建立的一个通道,客户端的命令、SQL、服务器端返回的数据都会经过这个通道来传输。这一讲,我们一起来分析数据库连接不上的问题,以及连接异常中断的问题。

为什么连接不上数据库?

客户端执行命令或 SQL 前,需要先创建一个到数据库服务端的连接,并完成用户认证。MySQL 服务端使用插件的方式认证客户端的用户身份。不同的插件在验证用户密码时,细节上会有所不同。MySQL 中,认证插件和用户相关,不同用户可以使用不同的插件进行密码验证。创建用户时,如果不显式指定,会使用参数 default_authentication_plugin 指定的插件。从 MySQL 8.0 开始,使用 caching_sha2_password 作为默认的认证插件,而 5.7 使用的默认插件是 mysql_native_password。
mysql> show variables like 'default_authentication_plugin';
+-------------------------------+-----------------------+
| Variable_name | Value |
+-------------------------------+-----------------------+
| default_authentication_plugin | caching_sha2_password |
+-------------------------------+-----------------------+
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. MySQL中,认证插件和用户相关,不同用户可以使用不同的插件进行密码验证,创建用户时需要注意指定认证插件。 2. 使用caching_sha2_password插件时,登录过程中服务端和客户端需要进行一系列交互,包括握手协议、密码哈希验证等步骤。 3. MySQL支持使用TLS协议建立加密连接,可以通过参数控制是否开启连接加密,也可以强制要求某些用户必须使用加密连接。 4. 为了保障数据库连接的安全性,可以在创建用户时指定或通过ALTER USER命令修改用户的连接要求,包括是否需要加密连接以及对证书的要求。 5. 未开启加密连接或证书不对而无法登录数据库时,服务端返回的报错也是ERROR 1045,需要检查用户是否有加密连接和证书相关的要求。 6. 从服务端的错误日志中,可以查看到一些相关的错误信息,帮助排查连接问题。 7. 客户端和服务端使用的默认插件可以不一样,需要注意客户端和服务端的认证插件是否一致。 8. 用户首次登录时,服务端没有缓存用户的密码信息,需要进行完整的登录流程,而用户登录成功后,会在服务端缓存哈希后的密码信息. 9. 服务端、客户端以及用户的认证插件都一样,并且用户信息已经缓存在服务端时,连接过程中的一些步骤会被跳过,提高连接效率. 10. 通过查看mysql.user表和服务端的错误日志,可以获取用户的连接要求和相关错误信息,帮助排查连接问题.

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课 》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • kalid
    受用,催更😄
    2024-08-23归属地:广东
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)