网站首页 > 开源技术 正文
- 现象描述:
在一次基于公有云ubuntu 24.04的测试环境中,通过内置软件源安装了MySQL应用,配置访问主机名已改为%,但通过公网IP无法连接
- 原因分析:
公有云的云主机默认是关闭系统防火墙功能的,而且我的安全组默认开放所有端口,这样方便测试。因此,首先这两项已经排除了
下面可以从这几个方面排查问题,包括刷新权限列表、主机绑定、认证插件类型
- 未刷新权限表
如果将root的主机名修改为%后,需要刷新权限列表使其生效
# 刷新权限表
flush privileges;
- 主机绑定
这是遇到的第一个错误,错误10061表示“由于目标计算机积极拒绝,无法连接”。这可能意味着你尝试连接的 MySQL 服务器没有监听指定的端口,或者防火墙阻止了连接请求。
公有云主机防火墙是默认关闭的,因此,不存在防火墙拦截的问题。那么可以从其他原因排查
查看[mysqld]配置中是否存在bind-address = 127.0.0.1,该配置会限制MySQL客户端只能在本机访问,可以注释掉,或者修改为0.0.0.0
修改完成记得重启MySQL服务
- 密码认证插件类型
配置文件修改了,此时再次尝试连接MySQL,提示错误号码1698,这个就是密码认证插件的问题了
查看认证插件类型
# 查看认证插件类型
use mysql
select user,host,plugin from user;
可以看到,此时root用户的认证类型为auto_socket,并不是默认的mysql_native_password
小贴士:
auth_socket 是一个插件,通常用于 MySQL 数据库服务器中。它允许客户端通过操作系统本身的认证机制来连接到 MySQL 服务器,而不需要在 MySQL 中单独设置密码。这意味着,如果操作系统的用户账户与 MySQL 用户账户相匹配,并且该用户具有使用 auth_socket 插件的权限,那么该用户就可以直接登录到 MySQL 而无需输入密码。
----------------- 我是一条分割线
这个功能一般用于一些需要自动化的场景中,比如脚本或服务需要定期连接到数据库执行任务,而避免了硬编码数据库凭证的风险。此外,这也提高了安全性,因为减少了因密码泄露而导致的安全风险。
修改密码插件认证类型
# 修改认证插件为默认的mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
执行修改命令
这是修改后的结果
经过以上操作,问题终于解决了。主要的原因是主机绑定和密码认证插件类型的问题
- 反向域名解析(只是警告)
这个可以在MySQL的错误日志当中查看到,路径为/var/log/mysql/error.log
出现错误的原因是MYSQL Server在本地内存中维护了一个非本地的Client TCP cache,这个cache中包含了远程Client的登录信息,比如IP地址,hostname等信息。
如果Client连接到服务器后,Mysql首先会在本地TCP池中根据IP地址解析客户端的hostname或者反向解析,如果解析不到,就会去DNS中进行解析,如果还是解析失败就是在error log中写入这样的警告信息。
严格来说,这不算是一个错误,只是警告,服务端也能够正常连接。但建议禁用掉,毕竟远程访问多了,会消耗一部分服务端性能,这也算是一种优化措施
解决办法:
在配置文件[mysqld]块中添加如下参数
[mysqld]
# 跳过主机缓存,减少服务端性能消耗
skip-host-cache
# 跳过对主机的反向域名解析
# 它将禁止MySql Server对外部连接进行DNS解析,使用这一选项可以消除MySql进行DNS解析的时间
skip-name-resolve
修改完成,记得重启MySQL服务
猜你喜欢
- 2024-10-24 从零开始学MySQL(二):MySQL数据库安装
- 2024-10-24 MySQL基础知识:启动管理和账号管理
- 2024-10-24 从零开始:Ubuntu Server中MySQL 8.0的安装与Django数据库配置详解
- 2024-10-24 等保测评2.0:MySQL身份鉴别(mysql身份认证和授权)
- 2024-10-24 Mysql:下载、安装、部署、修改密码步骤
- 2024-10-24 MySQL 9.1正式发布,有哪些值得关注的新特性?
- 2024-10-24 linux安装mysql客户端(只是客户端)
- 2024-10-24 mysql-命令行客户端工具(mysql 命令行客户端)
- 2024-10-24 Python3.7如何快速安装mysqlclient
- 2024-07-17 还再用Navicat?试试这款正版MySQL客户端,真香!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)