前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL局域网内访问慢的原因及解决方法

MySQL局域网内访问慢的原因及解决方法

作者头像
allsmallpig
发布2021-02-25 10:33:50
1.7K0
发布2021-02-25 10:33:50
举报
文章被收录于专栏:allsmallpi博客

转载自 http://blog.csdn.net/tiantang_1986/article/details/76890178

MySQL局域网内访问慢的原因及解决方法。

出现原因:主要是因为DNS服务器变更地址引起的。默认安装的mysql开启了DNS的反向解析,

Windows系统下解决方法

1. 进入WIN2003/XP系统Windows目录

2. 找出my.ini文件。

3. 修改文件内容,在[mysqld]下加入如下内容

skip-name-resolve   

skip-grant-tables   

4.保存文件,重起服务。

my.ini文件解析:

[mysqld] basedir=d:/mysql //mysql安装目录 datadir=d:/mysql/data //mysql数据库目录 port=3306         //mysql使用端口 skip-name-resolve //选项就能禁用DNS解析。这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。 skip-grant-tables //启动mysql时不启动grant-tables

Linux系统下解决办法:

如果在配制文件里面 :打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。调整设置时,请量力而行,这与你的服务器的配置有关,特别是内存大小。以下设置比较适合于内存的服务器,但并不绝对。

在 [MySQLD] 下面添加 skip-name-resolve 然后保存重起,就可以了! #指定索引缓 冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道 key_buffer_size设置是否合理。比例key_reads /key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用show status like'key_reads'获得)。key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是 MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。  key_buffer =

#要求MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加 它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统 的限制将是无效的。默认数值是50 back_log = 200  (back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中)

#一个包的最大尺寸。消息缓冲区被初始化为 net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误) 包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。 max_allowed_packet =  (一个包的最大尺寸)

#允许的同时客户的数量。增加该值增加 mysqld要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 链接过多,请联系空间商 错误。 默认数值是100 max_connections = 1024

#指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用show status like 'Open_tables'获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。 table_cache = 512

#每个线程排序所需的缓冲 sort_buffer_size =

#当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。 read_buffer_size =

#加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处…… read_rnd_buffer_size =

#用于REPAIR TABLE。不明白这个选项的用处,百度上找到的设置方向也是五花八门,有、、等,折中选一个。 myisam_sort_buffer_size =

#可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取 得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created状态的变量,可以看到这个变量的作用。 thread_cache_size = 128

#查询结果缓存。第一次执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的结果。服务器下一次碰到这个语句的时候,它不会再次执行该语句。作为代替,它直接从查询缓存中的得到结果并把结果返回给客户端。 query_cache_size =

#最大并发线程数,cpu数量*2 thread_concurrency = 2

#设置超时时间,能避免长连接 wait_timeout = 120

#关闭不需要的表类型,如果你需要,就不要加上这个 skip-innodb

skip-bdb

原文:http://blog.csdn.net/e421083458/article/details/8132781

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/02/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档