MySQL在远程访问时非常慢的解决skip-name-resolve
服务器放在局域网内进行测试时,数据库的访问速度还是很快。但当服务器放到外网后,数据库的访问速度就变得非常慢。
后来在网上发现解决方法,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
MySQL在远程访问时非常慢的解决skip-name-resolve相关推荐
- mysql编写中文时变成问号解决方法
mysql编写中文时变成问号解决方法 参考文章: (1)mysql编写中文时变成问号解决方法 (2)https://www.cnblogs.com/yangzhixue/p/11449525.html ...
- centos下MySQL Workbench连接时崩溃的解决方法
centos下MySQL Workbench连接时崩溃的解决方法 参考文章: (1)centos下MySQL Workbench连接时崩溃的解决方法 (2)https://www.cnblogs.co ...
- mysql主从配置时Slave_IO_Running: Connecting解决
主从同步时出现错误:Slave_IO_Running: Connecting mysql> show slave status\G; *************************** 1. ...
- MySQL删除数据库时无响应解决办法
今天在删除远程主机上MySQL中的一个数据库时,遇到了这样一个问题. 执行drop database语句的时候,远程主机一直在响应,无法正常删除.登录到远程主机上删除也无响应. 这个问题的解决办法如下 ...
- 解决MySQL导入数据时遇到secure-file-priv的问题
解决MySQL导入数据时遇到secure-file-priv的问题 参考文章: (1)解决MySQL导入数据时遇到secure-file-priv的问题 (2)https://www.cnblogs. ...
- MySQL 插入数据时,中文乱码问题的解决
MySQL 插入数据时,中文乱码问题的解决 参考文章: (1)MySQL 插入数据时,中文乱码问题的解决 (2)https://www.cnblogs.com/sunzn/archive/2013/0 ...
- mysql导入数据表越来越慢,快速解决mysql导数据时,格式不对、导入慢、丢数据的问题...
快速解决mysql导数据时,格式不对.导入慢.丢数据的问题 如果希望一劳永逸的解决慢的问题,不妨把你的mysql升级到mysql8.0吧,mysql8.0默认的字符集已经从latin1改为utf8mb ...
- Mysql插入中文的字段内容时乱码的解决方法
Mysql插入中文的字段内容时乱码的解决方法 参考文章: (1)Mysql插入中文的字段内容时乱码的解决方法 (2)https://www.cnblogs.com/charlypage/p/10780 ...
- 解决mysql级联删除时不会启动delete触发器
解决mysql级联删除时不会启动delete触发器 目前mysql 5.* 版本在级联删除时不会执行delete触发器,当外键级联删除后没有启动触发器可能会产生一些垃圾数据,这些垃圾数据可能因为某些原 ...
最新文章
- linux下配置ip地址的方法
- 2019 Mac装Cocoapods的步(cai)骤(keng)记录
- netperf -R用法
- 3.4 多个例子中的向量化-深度学习-Stanford吴恩达教授
- 【MySQl】MyISAM和InnoDB索引对比
- PCB相关的基础知识
- ELK学习记录三 :elasticsearch、logstash及kibana的安装与配置(windows)
- linux查看mysql表空间使用率_Oracle查看数据库表空间使用情况sql语句
- SpringMVC拦截器(interceptors)
- 自学it18大数据笔记-第二阶段hadoop-day11——会持续更新……
- Intellij IDEA社区版集成Maven插件
- RSA加密算法【手把手解释】
- mysql in过大_项目中常用的 19 条 MySQL 优化
- 国内的一个不错的ftp搜索引擎
- 吊打面试官了解一下?2021年字节跳动春招面试题详解(附详细答案)
- 如何破解终端算力困局?PRCV这篇论文让机器人“算有余力”
- 动态规划-leetcode#213 打家劫环形舍
- 若干个游戏辅助的分析手记(一)
- 多校2.1012La Vie en rose
- http状态码全解读
热门文章
- s:url多值传递的时候出现;amp
- BI开发之——ETL注意细节
- RHEL 6 配置yum源
- SharedCache分析:服务端程序
- MYSQL 10038 服务启动不起来
- ++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++
- 阿里云,CentOS下yum安装mysql,jdk,tomcat
- 我理解设计模式C++实现观察者模式Observer Pattern
- 函数call相关[ASM]
- Samba 3.4.0 发布