无限技术编程网|新闻无限网|无限新视界
当前位置:首页 > 云计算技术 > 数据库

数据库

mysql数据库访问速度慢的解决方法

时间:2019-02-09 09:31:13   作者:无限编程网   来源:无限编程网   阅读:104   评论:0

转载1:今天公司的网络做了调整,造成原本连接很快的mysql服务器,连接速度奇慢。以前几十毫秒的连接现在完成一次要近5秒钟,在排除了网络问题后,只有从mysql下手。原来每次访问db,mysql就会试图去解析来访问的机器的domain name,如果这时解析不料,等一段时间会失败,数据才能被取过来。解决方法如下:
修改 my.cnf
[mysqld]
skip-name-resolve #Don’t resolve hostnames 
重启,问题解决。

转载2:最近,web后台管理服务器速度挺慢,一开始以为是apache瓶颈的问题,因为发现大量的搜索引擎老是爬过来,于是在防火墙上过滤掉了google、baidu等搜索引擎,没有什么好转的迹象。于是不用apache连接数据库,只测试整数、浮点运算,发现速度很快。因此,开始怀疑是数据库服务器上mysql的问题,但从本地测试mysql,查看连接数又一切正常。接着以为是两台服务器间网络连接的问题,先是修改两台机器上防火墙的设置,无效。开始从网上搜索,发现有人提到“ DNS的反向解谐。在my.cnf中设置:skip-name-resolve就OK了。发现这种连接慢的问题一般都是服务程序设置了DNS反向解析造成的。sshd,ftpd都是如此。教训。 ” 
于是想起来10.11为了设置view,将主dns由windows更换为linux,没有设置后台服务器的反向解析,于是赶紧设上,至此,问题解决。好多问题都是环环相扣的阿。
注:修改后不能使用localhost进行连接。如果要本地连接的话使用127.0.0.1
如:mysql -h 127.0.0.1 -uroot -p
jsp连接的话:http://127.0.0.1:3306/......省
同时修改数据库用户表对应的host为127.0.0.1 


Redhat 的server ssh到Ubuntu Server的时候速度很慢,要等大约5秒才提示输入密码
解决办法
修改
I used a rather quick, easy solution - add "UseDNS no" to the end of /etc/ssh/sshd_config. This blocks reverse DNS lookups entirely.

转载3:团队开发为了方便需要统一mysql,局域网内用专门的电脑作为mysql服务器。

mysql默认是不允许远程连接的,因为有很大的安全隐患。。所以我们需要手动开启。

ubuntu下mysql -u root -p 输入密码进入mysql控制台

创建远程登陆用户并授权

<!--more-->

 

grant all PRIVILEGES on dbname.table to user@ipaddress′ identified by ‘password′;

最简单的  GRANT ALL PRIVILEGES ON *.* TO root@"%"IDENTIFIED BY 'password' WITH                                     GRANT OPTION;

 

逐一分析所有的参数:

all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

dbname.* 表示上面的权限是针对于哪个表的,dbname指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。

user表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

ipaddress表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

 password为用户的密码。

执行完毕记得重启apache

 

sudo /etc/init.d/apache2 restart

 

 

远程访问的问题解决了,但是发现在局域网使用速度都会很慢,这个按理说不应该。

最终google到了解决办法

 

MySQL在处理新的线程连接请求时,会尝试进行DNS解析,如果在host cache和Hosts里找不到,处理起来就会很慢,因此最直接简便的方法就是禁用该反向解析功能,可以通过修改MySQL的配置文件实现,Linux下是my.cnf文件,windows下是my.ini文件,在配置文件[mysqld]下新增如下一行代码:

skip-name-resolve

然后重启MySQL服务,再次连接发现已是秒连了。这个方案的不足之处就是,以后在使用grant对用户进行授权时只能使用IP格式,而不能使用主机名称了。

通过修改系统hosts文件也可以实现,举例来说,我想解决192.168.1.100远程连接MySQL服务器缓慢的问题,只需要在MySQL库所在服务器的hosts文件中新增一条记录如下:

192.168.1.100 test.com

保存退出,再次远程连接该MySQL库,同样很快。之所以说绝,是因为这样设置,你添加记录的192.168.1.100远程连接速度变快了,其他主机连接速度跟之前一样慢。该方法同样可以解决ssh远程连接某主机响应很慢的问题,原理一样。

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:service@fjwqss.cn。本站原创内容未经允许不得转载,或转载时需注明出处:无限编程网。新闻无限网无限编程网门户 » mysql数据库访问速度慢的解决方法


相关文章