`
immortal2512
  • 浏览: 44943 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

局域网访问MySQL数据库慢的解决方法

阅读更多

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
[WinMySQLAdmin]
Server=D:/mysql/bin/mysqld-nt.exe //启动mysql执行文件目录。
user=root //登录用户
password= //登录密码


Linux系统下解决办法:

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

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

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

#允许的同时客户的数量。增加该值增加 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 = 4M

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

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

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

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

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

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

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

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

 

分享到:
评论

相关推荐

    如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。非常急人,有没有办法可以解决局域网内mysql数据库连接慢呢?下面小编带领大家来解决此问题,感兴趣的朋友一起看看吧

    如何在同一个局域网中访问别人的mysql数据库.txt

    #### 访问MySQL数据库 完成以上步骤后,可以在客户端计算机上尝试连接服务器上的MySQL数据库。例如,使用MySQL客户端或其他支持MySQL的数据库管理工具进行连接。 1. **创建新的连接**:在客户端软件中选择创建新的...

    Python访问Mysql数据库

    ### Python访问MySQL数据库 #### 一、Python简介 Python是一种高级编程语言,由Guido van Rossum于1989年发明,首次发布于1991年。它以其简单易学、功能强大著称。Python的设计哲学强调代码的可读性和简洁的语法,...

    VB6连接MySQL数据库实例含驱动和源代码

    本实例将提供一个完整的解决方案,包括所需的驱动程序和源代码,帮助开发者理解如何在VB6环境中与MySQL数据库进行交互。 首先,我们需要了解VB6中的ADO(ActiveX Data Objects)组件。ADO是微软开发的一套接口,...

    C++Builder连接局域网中MySQL.pdf

    通过测试连接,如果能成功,就表示已经可以访问到局域网内的MySQL数据库。 最后,可以在服务器端使用MySQL管理工具(如Workbench)监控,查看客户端程序是否真的能够进行数据的读写操作,验证连接的稳定性与数据的...

    局域网环境中android 访问Windows共享的MySQL数据库 jdbc jar包

    在局域网环境中,Android设备访问Windows共享的MySQL数据库是一个常见的需求,特别是在多设备协作的项目中。这个过程涉及到Android应用程序开发、网络通信、数据库连接和数据操作等多个方面。这里我们将详细探讨如何...

    Kepware EX6与MySQL数据库通讯.pdf

    除了局域网内的MySQL数据库,还可以配置其他支持ODBC通讯的数据库,例如Access、Oracle等,甚至可以通过适当配置,实现与云数据库如阿里云MySQL的通讯。 在将PLC数据实时写入MySQL数据库的过程中,开发者需要了解并...

    docker中使用mysql数据库实现局域网访问

    在本篇内容里小编给大家整理了关于docker中使用mysql数据库实现局域网访问相关内容,有需要的朋友们可以学习下。

    局域网中SQL数据库操作(delphi)

    在IT领域,数据库管理和操作是核心技能...通过这个项目,开发者不仅可以学习到Delphi数据库编程,还能提升在局域网环境下的数据库解决方案设计能力。无论是对于初学者还是有经验的开发者,这都是一个有价值的实践课题。

    局域网连接数据库程序

    下面将详细介绍局域网连接数据库的基本原理、实现方法及关键知识点。 首先,我们要理解局域网的概念。局域网是一种在小范围内(如办公室、校园或建筑物内)构建的高速、高带宽的计算机网络,它提供了一种高效、便捷...

    C#局域网连接数据库程序

    标题 "C#局域网连接数据库程序" 涉及到的是使用C#编程语言在局域网环境中创建一个能够连接并操作数据库的应用程序。C#是微软开发的一种面向对象的编程语言,常用于构建Windows应用程序、Web服务以及游戏等。在局域网...

    Mysql数据库远程连接利器SQLyog

    MySQL数据库是世界上最受欢迎的开源关系型数据库之一,广泛应用于各种规模的企业和项目中。SQLyog,作为一款强大的MySQL管理工具,是许多数据库管理员和开发者的首选,尤其在远程连接MySQL数据库时,它表现得尤为...

    C++Builder连接局域网中MySQL.rar

    这个压缩包“C++Builder连接局域网中MySQL.rar”显然涉及到如何使用C++Builder与局域网内的MySQL数据库进行交互。以下是关于这一主题的详细知识: 1. **C++Builder与数据库连接**:C++Builder支持多种数据库连接...

    docker中使用mysql数据库详解(在局域网访问)

    主要给大家介绍了在docker中使用mysql数据库,在局域网访问的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    MYSQL数据库在科研管理系统中的应用.pdf

    如解生冕和叶廷东的“机械设计制造公司大楼局域网设计”、陶国芳的“计算机网络综合布线系统实验室的设计和实现”等,进一步证明了在科研管理领域,结合计算机网络技术和MySQL数据库的解决方案已经成为主流趋势。...

    PHP连接局域网MYSQL数据库的简单实例

    当我们谈论“PHP连接局域网MySQL数据库”时,我们实际上是在讨论如何通过PHP程序从一个服务器或客户端机器访问局域网内的另一台运行MySQL服务的服务器。以下是一个简单的PHP脚本,演示了这个过程: ```php $conn = ...

Global site tag (gtag.js) - Google Analytics