MySQL在远程访问时非常慢的解决skip-name-resolve

2023-05-16

服务器放在局域网内进行测试时,数据库的访问速度还是很快。但当服务器放到外网后,数据库的访问速度就变得非常慢。

后来在网上发现解决方法,my.cnf里面添加

[mysqld]
skip-name-resolve

这样速度就快了!

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

还有权限的问题,当用户设置限制只能访问某个数据库,如果这个数据库被删了,再重建这个指定数据库,限制用户还是不能访问这个数据,大概是删除数据库的时间,把该用户的访问权限也级联删除了,详细可以查看mysql.db的记录

若使用–skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制;默认情况是show databases语句对所有用户开放。

如果mysql服务器没有开远程帐户,就在my.cnf里面加上skip-grant-tables

排除网络问题。

就MySQL本身而言,问题出在在mysql dns反解析

mysql>show processlist;

| 20681949 | unauthenticated user | 10.10.4.193:52497 | NULL | Connect | | Reading from net | NULL |
| 20681948 | unauthenticated user | 10.10.4.193:52495 | NULL | Connect | | Reading from net | NULL

发现有非常多的 unauthenticated user 尝试做登入使用 mysql 的情況 ,当这种情况无限制发生时就会造成系统十分缓慢。

查阅mysql官方网站得知,这属于官方一个系统上的特殊设定,就把他当成mysql的一个bug算了,不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查。mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,就会无法应付过量的查询。

解决办法:

/usr/local/mysql/bin/mysqld_safe --skip-name-resolve --user=mysql&

加 --skip-name-resolve 这么一个参数就可以,关闭mysql的dns反查功能。

或者修改mysql配置文件。

编辑/etc/my.cnf

在[mysqld]段中加入

skip-name-resolve

重启mysql

在/etc/my.cnf 的配置文件中加入如下一句,禁用DNS反响解析,就能大大加快MySQL连接的速度。
[mysqld]

下面加上这句
skip-name-resolve

#注意有些文章中写道加入–skip-name-resolve,经验证,在CentOS5下加入–skip-name-resolve会导致mysql守护进程无法启动。估计在其他linux系统下是一样的,windows下没有测试,skip-name-resolve应该就可以。

**************************************

下面是其它网友的补充:

问题现象是这样的:

我在一台机器上(61.183.23.23)启动了一个mysql,然后开通一个账号可以从127.0.0.1或者从61.183.23.23访问。但是遇到一个问题就是使用下面两个命令行访问的时候,速度差别非常大:

mysql –h 127.0.0.1 –u user
mysql –h 61.183.23.23 –u user

然后我使用ping,判断两个IP的速度差不多。

使用127.0.0.1的IP速度比另一个快太多了。虽然说这里的61.183.23.23需要去外网走一圈,但是速度差别怎么会差这么多。

解决办法:

mysql使用skip-name-resolve禁止掉DNS的查询。
mysql会在用户登录过程中对客户端IP进行DNS反查,不管你是使用IP登录还是域名登录,这个反查的过程都是在的。所以如果你的mysql所在的服务器的DNS有问题或者质量不好,那么就有可能造成我遇到的这个问题,DNS解析出现问题。

修改mysql配置文件

[mysqld]
skip-name-resolve

补充:

做个提醒,增加skip-name-resolve有可能导致账号失效,比如我原先的账号是yejianfeng@localhost,然后其实我使用mysql -h127.0.0.1 -uyejianfeng 是可以登录的。但是一旦加上了skip-name-resolve,就不能登录的了。需要加上账号yejianfeng@127.0.0.1


转载于:https://www.cnblogs.com/moqiang02/p/4061446.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL在远程访问时非常慢的解决skip-name-resolve 的相关文章

  • iOS开发零基础教程之真机调试流程

    本讲主要内容 xff1a 1 真机测试前准备工作 2 第一步创建App ID 3 第二步创建开发证书Development Certificate 4 第三步打开本地钥匙串创建CSR文件 5 第四步添加设备 6 第五步创建描述文件 7 第六
  • OVN简介

    三 OVN入门 3 1 OVN简介 Open vSwitch xff08 OVS xff09 是一款开源的 虚拟交换机 xff0c 控制协议方面它不但支持OpenFlow的所有特性而且扩展了部分OpenFlow的功能 xff1b Overl
  • 压缩 质量不变_项目启动后客户要求压缩工期,该如何处理?

    点击蓝字关注我们 马先生 首先 xff0c 项目经理应了解这种要求的合理性和必要性 xff0c 如果甲方确实有充分和充足的需要 xff0c 再进行如下工作 xff1a 1 组织项目团队认真分析赶工的可行性 xff0c 如果可行 xff0c
  • 第八章 让开发板发出声音,蜂鸣器驱动 心得体会

    第8章让开发板发出声音 xff0c 蜂鸣器驱动 心得体会 通过学习Android深度探索 卷1 HAL与驱动开发的第8章 让开发板发出声音 xff0c 蜂鸣器驱动 xff0c 我加深对驱动的认识 以下主要是我对本节实验和参考在Linux驱动
  • 连接到CentOS(Linux)服务器ssh、mysql缓慢

    现象 xff1a 服务器163与服务器164在同一机柜 xff0c 双绞线直接连接 xff0c 从办公室或者服务器163去连机服务器164的ssh mysql均缓慢 xff0c 让机房人员查了 xff0c 无果 而164却正常 最后发现两个
  • vs 下调试 引用的DLL源码

    在开发时 xff0c 可以经常引用带源码的DLL xff0c 但有时可以又要跟踪到源码里 解决 xff1a 1 引用Debug目录下的DLL xff0c 不要引用Release目录下的DLL 当然被引用的DLL项目 xff0c 要在Debu
  • 从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨

    以前的大二层技术 xff0c 一般是在物理网络底层使用IS IS路由技术 xff0c 再在此基础之上 xff0c 实现数据中心网络的二层扩展 xff0c 如公有的Trill SPB技术和Cisco私有的OTV Fabricpath技术 xf
  • 使用mysqladmin命令修改Mysql密码

    1 例如你的 root用户现在没有密码 xff0c 你希望的密码修改为123456 xff0c 那么命令是 xff1a mysqladmin u root password 123456 2 如果你的root现在有密码了 xff08 123
  • pyqt5——菜单和工具栏

    菜单和工具栏 这个章节 xff0c 我们会创建状态栏 菜单和工具栏 菜单是一组位于菜单栏的命令 工具栏是应用的一些常用工具按钮 状态栏显示一些状态信息 xff0c 通常在应用的底部 主窗口 QMainWindow提供了主窗口的功能 xff0
  • linux cuda安装目录,ubuntu16.04上的cuda安装、卸载以及替换

    以cuda9 0为例 xff1a 安装 首先 xff0c 下载对应版本的cuda的运行脚本 xff0c 我下载的是cuda 9 0 176 384 91 linux run 1 运行脚本文件sudo sh cuda 9 0 176 384
  • C++软件工程师,你该会什么?

    请尊重原创 转载注明来源 原创在这里哦 C语言广泛用于基础软件 桌面系统 网络通信 音频视频 游戏娱乐等诸多领域 是世界上使用最广泛的编程语言之一 随着物联网技术的发展 xff0c C C 43 43 技术在3G 网络通信 xff08 移动
  • 芒果iOS开发面试题答案

    面试题答案总结 1 简述OC中内存管理机制 1 1 OC的内存管理机制是自动引用计数 xff0c 内存管理的原则是谁开辟谁释放 xff0c 有retain的地方就要有release 1 2 内存管理分为ARC和MRC xff0c 在MRC下
  • 软件工程概论-----课后作业一

    1 网站系统开发需要掌握的技术 xff1f 答 xff1a 网站的开发技术有很多 xff0c 主要包括CGI ASP PHP JSP ASP xff0e NET等 每一种技术都有其自身的特点与局限性 xff0c 具体的网站开发技术要根据网站
  • 拒绝拖延,立即行动 拥有积极心态的四大秘诀

    自己是一个非常拖延的人 在网上找了些指导的文章 用来自勉 以期付出行动 改正自己的坏习惯 根据心理学家的统计 xff0c 每个人每天大约会产生5万个想法 如果你拥有积极的态度 xff0c 那么你就能乐观地 富有创造力地把这5万个想法转换成正
  • STM32 F4 任务创建的步骤

    跟任务重要的三个参数 任务函数 任务堆栈 任务控制块 其他参数 stk limit 任务堆栈深度限位 栈深 确保堆栈不溢出 一般的为堆栈大小的1 10 QTY 内建的消息队列 OS TICK 时间轮转 OS OPT 选项 监测任务堆栈 允许
  • ubuntu下能ping通ssh不通的解决思路

    1 首先看看是否能ping通 xff0c 如果ping不通可能就要考虑网线 路由等问题了 xff1b 2 看防火墙是否关闭 xff0c sshd是否开启 3 ssh v 服务器的ip号 xff0c 根据提示寻找可能的问题 xff1b 我的问
  • lu分解法matlab_MATLAB因式分解

    4 1 因式分解 本节介绍线性代数的一些基本操作 xff0c 包括行列式 逆和秩 xff0c LU分解和QR分解 xff0c 以及范数等 其中LU分解和QR分解都是使用对角线上方或者下方的元素均为0的三角矩阵来进行计算 使用三角矩阵表示的线
  • 宝塔php socket,宝塔开启websocket 小程序聊天功能开发

    前言 在网上找了各种各样宝塔开启websocket的方法 xff0c 结果试了一天都不行 xff0c 无奈只有请教大神出手 摒弃 首先在全网基本上没有宝塔配置的教程 xff0c 有反正我是试了一天都不行 xff0c 他们的统一配置都是在 网
  • 数据库难还是学java难,mysql数据库比java难吗,女生学数据库难吗

    数据库会不会很难学 xff1f 现在主流的数据库是SQL Server xff0c oracle xff0c mysql 我没做过mysql 如果你懂一门数据库语言 xff0c 学习其他数据库是很容易的 只是不同的数据库针对不同的用户群体
  • oracle取年份方法,oracle时间函数(包括截取时间)

    oracle trunc 函数的用法 1 TRUNC for dates TRUNC函数为指定元素而截去的日期值 其具体的语法格式如下 xff1a TRUNC date fmt 其中 xff1a date 一个日期值 fmt 日期格式 xf

随机推荐