MySQL远程访问速度缓慢的解决和分析
来源:互联网 发布:北航高等理工学院知乎 编辑:程序博客网 时间:2024/04/20 05:58
环境介绍:
OS:RHEL5.4
MySQL:5.5.10
异常情景:
数据库一直处于机房内网中访问和使用,一天一个国外节点需要访问数据库,开通访问权限后,他们反馈很慢;
随即在防火墙上,开通自己公司IP进行访问,也有类似问题!
开始排错原因:
1.检查网络是否稳定?得到答案,ping ttl值很稳定,ssh也正常;
2.检查MySQL运行状态,无异常发现;
3.突然想起了,MySQL利用DNS做解析的参数有可能在规划时,没有做设置!!!
解决办法:
1.验证参数
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | OFF |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.00 sec)
mysql> show variables like 'skip_%';
2.停库,修改my.cnf里面参数
[mysqld]
skip_name_resolve
3.重启数据库后验证:
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.03 sec)
OS:RHEL5.4
MySQL:5.5.10
异常情景:
数据库一直处于机房内网中访问和使用,一天一个国外节点需要访问数据库,开通访问权限后,他们反馈很慢;
随即在防火墙上,开通自己公司IP进行访问,也有类似问题!
开始排错原因:
1.检查网络是否稳定?得到答案,ping ttl值很稳定,ssh也正常;
2.检查MySQL运行状态,无异常发现;
3.突然想起了,MySQL利用DNS做解析的参数有可能在规划时,没有做设置!!!
解决办法:
1.验证参数
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | OFF |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.00 sec)
mysql> show variables like 'skip_%';
2.停库,修改my.cnf里面参数
[mysqld]
skip_name_resolve
3.重启数据库后验证:
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | ON |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.03 sec)
该选项用于禁用DNS解析,连接速度会快很多。不过,这样就不能在MySQL的授权表中使用主机名而只能用ip地址。
MySQL利用DNS做解析解释:
当 mysql 客户端连接 mysql 服务器 (进程为:mysqld),mysqld 会创建一个新的线程来处理该请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名。
如果系统是线程安全的,则 gethostbyaddr_r () 和 gethostbyname_r() 被调用,来执行主机名解析;
如果系统不支持线程安全调用,则线程会锁定一个互斥体并调用 gethostbyaddr() 和 gethostbyname() 。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。
通过 --skip-name-resolve 选项启动 mysqld 来禁用DNS主机名查找。此时,只可以使用 MySQL 授权表中的 IP 地址,不能使用主机名。
如果 DNS 解析很慢且包括许多主机,通过用--skip-name-resolve 禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能;
通过 --skip-host-cache 选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行 FLUSH HOSTS 语句或执行 mysqladmin flush-hosts 命令。
如果要完全禁止 TCP/IP 连接,用 --skip-networking 选项启动 mysqld 。
阅读全文
0 0
- MYSQL远程访问速度缓慢的解决和分析
- MySQL远程访问速度缓慢的解决和分析
- MySQL远程访问速度缓慢的解决和分析
- MySQL远程访问速度缓慢的解决和分析
- JDBC访问远程MYSQL数据库,速度缓慢解决方法
- linux下mysql访问速度缓慢并且ssh连接缓慢
- 网页加载速度缓慢的原因分析
- mysql远程访问解决
- 解决MySQL无法远程访问的方法
- 禁用Google Fonts解决WordPress加载速度缓慢的问题
- 解决android离线API打开速度缓慢的问题
- VMware Workstation12 运行winxp 速度缓慢问题的解决
- 解决远程访问mysql时变慢
- 如果解决跨国企业和外资企业在华访问海外AWS缓慢的问题
- MySQL远程访问及访问速度慢等问题解决
- 本地wordpress加载速度缓慢的解决方法和安装插件
- Mysql的远程访问
- 解决MySQL不允许从远程访问的方法
- eclipse配置mybatis 的xml提示
- 递归翻转一个字符串
- T4模板之基础篇
- Android 进阶6:两种序列化方式 Serializable 和 Parcelable
- python安装更新和pip安装使用阿里源及yum问题解决
- MySQL远程访问速度缓慢的解决和分析
- java中进制之间的相互转化
- Mysql增删改查
- Trie Tree 实现中文分词器
- python学习记录
- C_Cpp-C语言回顾
- 搜索--G
- linux运维-apache
- PageSegMode in Tesseract