服务器放在局域网内进行测试时,数据库的访问速度还是很快。但当服务器放到外网后,数据库的访问速度就变得非常慢。
后来在网上发现解决方法,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应该就可以。
文章出处:http://www.diybl.com/course/7_databases/mysql/myshl/200865/121884.html
分享到:
相关推荐
【知识点详解】 MySQL数据库在处理远程连接时,如果启用了域名解析功能,即尝试通过DNS查找...对于那些依赖DNS解析的特定场景,这可能不是一个最佳解决方案,但在大部分情况下,它能显著改善远程访问MySQL的性能。
总的来说,当面临MySQL远程连接速度慢的问题,尤其是在没有外网连接,DNS解析无法完成的环境中,开启`skip-name-resolve`是一个值得考虑的解决方案。通过禁用DNS查找,可以显著减少由于DNS解析延迟引起的连接延迟,...
如果一个问题出现两次,那么这个问题就值得去研究下了,上次客户说MYSQL数据库很慢,我还在想,不会是PHP的问题吧?
4. **远程访问MySQL速度很慢** - 可以尝试在MySQL配置文件`/etc/my.cnf`的`[mysqld]`部分添加以下内容: ```ini skip-name-resolve skip-grant-tables ``` - 这些选项有助于提高远程访问MySQL的速度,但需要...
在查询mysql相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在mysql的配置文件中增加如下配置参数: [mysqld]skip-name-resolve 在linux下配置文件是/etc/my.cnf,在windows下配置文件是mysql...
- 禁止mysql做域名解析(解决远程访问mysql时很慢):如果连接速度慢,可能需要禁止MySQL进行DNS解析。 - MySQL 不允许从远程访问的解决方法:针对无法从其他主机连接MySQL的场景。 - 远程访问MySQL数据库的方法小结...
以上就是关于"mysql操作常用问题解决"的一些关键知识点,涵盖了MySQL数据库的基础使用、管理、优化和故障排查等方面,对于日常操作和维护MySQL数据库非常有帮助。通过学习和实践这些内容,可以有效地提升MySQL数据库...
orzdba是一款专为Windows平台设计的MySQL远程性能监控软件,它提供了强大的功能,帮助管理员有效地诊断和解决性能问题。 一、orzdba简介 orzdba(Oracle ZDBA)虽然名字中带有Oracle,但其对MySQL的支持同样强大。...
navicat无法远程连接mysql的解决方法mysql开启远程连接(mysql开启远程访问)详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))配置mysql允许远程连接的方法远程连接mysql 授权方法详解远程连接mysql数据库注意点...
MySQL 5.7.29 是一个非常成熟且功能强大的数据库版本,尤其在 CentOS 这样的稳定平台上表现更佳。无论是对于个人开发者还是企业用户而言,它都提供了丰富的功能和极高的可靠性。通过合理配置和管理,能够充分发挥其...
本文将深入探讨在远程连接MySQL数据库时需要注意的关键点,包括新建独立账户、设置权限以及解决远程连接速度慢的问题。 首先,让我们来看如何新建独立账号并设置权限。在MySQL中,创建新用户通常需要使用命令行...
MySQL的日志文件记录了错误信息、查询日志和慢查询日志,这些信息对排查问题和性能分析非常有帮助。 12. **复制和集群**: MySQL支持主从复制,可以在多个服务器间同步数据,实现高可用性和负载均衡。还有InnoDB ...
6. **重置 MySQL 密码**:通过 `mysql -u root` 登录 MySQL,若出现连接错误,可能是由于 `/var/lib/mysql/mysql.sock` 的访问权限问题。此时可以通过 `chown root /var/lib/mysql/` 解决,并重启 MySQL 服务。 7. ...
为了安全起见,建议在安装后立即更改root用户的默认密码,并考虑限制远程访问,只允许特定IP地址或localhost连接MySQL服务器。 在配置MySQL服务器时,还需要注意以下几点: 1. **日志文件**:配置日志文件可以帮助...
然而,这些工具在连接远程服务器时可能会因为网络延迟而显得较慢,尤其是在处理大量数据或者复杂的查询时。 压缩包中的"sql-admin.php"文件很可能就是这个PHP MySQL执行器的源代码。这个文件可能包含了处理数据库...
- 确保网络安全性:限制对MySQL服务的远程访问,只允许信任的IP或子网连接。 - 使用SSL连接:启用SSL加密,保证数据传输的安全。 - 定期备份:制定定期备份计划,以防数据丢失。 **5. MySQL性能监控和调优:** ...
这种错误通常是由于MySQL服务器配置不正确或限制了远程访问导致的。以下是一份详细的解决步骤: 1. **确认MySQL配置**:首先,你需要确保MySQL服务器配置允许远程连接。在MySQL服务器上,你需要编辑`my.cnf`配置...
9. 远程连接:SQLyog支持远程连接到MySQL服务器,这意味着开发者可以在任何地方管理他们的数据库,增强了工作的灵活性。 总结来说,SQLyog作为一款全面的MySQL开发环境,不仅简化了数据库的管理和操作,而且提供了...