MySQL远程访问速度缓慢的解决和分析

环境介绍:
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地址。


参考知识点整理:
mysqld参数整理http://dev.mysql.com/doc/refman/5.5/en/mysqld-option-tables.html
skip-name-resolve参数介绍1:http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_skip-name-resolve
skip-name-resolve参数介绍2:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_skip_name_resolve
host-cache参数介绍:http://dev.mysql.com/doc/refman/5.5/en/host-cache.html
还有一种方法:在源代码中增加HOST_CACHE_SIZE定义(默认值:128)并重新编译MySQLd来提高性能{暂时未测试}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。