MySQL数据库远程连接怎么提升速度

有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的。

在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接发现是很快的,所以网络问题基本上被排除了。以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看看是不是MySQL的配置问题。

在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL的配置文件中增加如下配置参数:

[mysqld]

skip-name-resolve

在Linux下配置文件是/etc/my.cnf,在windows下配置文件是MySQL安装目录下的my.ini文件。注意该配置是加在 [mysqld]下面,在更改配置并保存后,然后重启mysql并远程连接测试,一切恢复如初。

该参数的官方解释信息如下:

代码如下:

How MySQL uses DNS

When a new thread connects to mysqld, mysqld will spawn a new thread to handle the request. This thread will first check if the hostname is in the hostname cache. If not the thread will call gethostbyaddr_r() and gethostbyname_r() to resolve the hostname.

If the operating system doesn't support the above thread-safe calls, the thread will lock a mutex and call gethostbyaddr() and gethostbyname() instead. Note that in this case no other thread can resolve other hostnames that is not in the hostname cache until the first thread is ready.

You can disable DNS host lookup by starting mysqld with –skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.

If you have a very slow DNS and many hosts, you can get more performance by either disabling DNS lookop with –skip-name-resolve or by increasing the HOST_CACHE_SIZE define (default: 128) and recompile mysqld.

You can disable the hostname cache with –skip-host-cache. You can clear the hostname cache with FLUSH HOSTS or mysqladmin flush-hosts.

If you don't want to allow connections over TCP/IP, you can do this by starting mysqld with –skip-networking.

根据文档说明,如果你的mysql主机查询DNS很慢或是有很多客户端主机时会导致连接很慢,由于我们的开发机器是不能够连接外网的,所以DNS解析是不可能完成的,从而也就明白了为什么连接那么慢了。

同时, 请注意在增加该配置参数后,mysql的授权表中的host字段就不能够使用域名而只能够使用 ip地址了 ,因为这是禁止了域名解析的结果。

时间: 2024-08-02 17:32:47

MySQL数据库远程连接怎么提升速度的相关文章

MySQL数据库远程连接开启方法_Mysql

第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码 代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL&g

MySQL数据库远程连接开启方法

第一中方法:比较详细 以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL&g

MySQL数据库远程连接很慢的解决方案_Mysql

有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的. 在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接发现是很快的,所以网络问题基本上被排除了.以前也遇到过一次这样的问题,可后来就不知怎么突然好了,这次又遭遇这样的问题,所以想看看是不是MySQL的配置问题.在查询MySQL相关文档和网络搜索后,发现了一个配置似乎可以解决这样的问题,就是在MySQL的配置文件中增加如下配置参数

mysql数据库-远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上

问题描述 远程连接服务器上,在自己的帐号下建立java连接mysql的程序,但是一直连接不上 我是通过远程连接在实验室机房的一台机器(linux操作系统)上,然后在该机器上建立JAVA程序,其中涉及到连接mysql数据库的操作,但是在获取连接时一直提示"Communications link failure",涉及的代码为:connect=DriverManager.getConnection(""jdbc:mysql://localhost:3306/pyq_te

解决MySQL无法远程连接的方法_Mysql

MySql远程连接无法打开解决办法 1.改表法. 请使用mysql管理工具,如:SQLyog Enterprise.navicate mysql 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑使用mysql管理工具登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 2. 授权法.

mysql 开启远程连接的三种方法

本文章收藏了三种关于如何开启mysql教程 远程连接,第一款就是在mysql cmd命令提示符下给mysql开启远程连接的,方法三是修改mysql my.ini的文件配置来修改的哦. 方法一 样给mysql开启远程连接功能? 首先链接本机的mysql(用ssh登录终端,输入如下命令): mysql -uroot -p 输入密码登陆进去后,输入如下的语句,执行. grant all privileges on *.* to 'user'@'%' identified by 'password' w

mysql允许远程连接的方法_Mysql

一.概述  本文主要介绍通过federated存储引擎建立远程连接表 测试环境:mysql 5.6.21 二.步骤 开启federated存储引擎 先查看federated存储引擎存储引擎是否启用 SHOW ENGINES ; 默认mysql是没有开启federated存储引擎,我这里因为已经配置了. 开启federated存储引擎只需要在my.cnf文件中增加'federated'就可以. 创建远程连接表  mysql配置远程连接必须在本地创建federated存储引擎的表,配置远程连接参数,

MySql允许远程连接如何实现该功能

MySql允许远程连接如何实现该功能 要达到这个目的需要实现两点 开通用户权限 解除本地绑定 开通用户权限 首先登陆服务器端的MySQL //不使用空格可以直接登陆 mysql -u用户名 -p密码 mysql> use mysql mysql> select user, host from user; 效果图 执行了代码以后会看到所有的用户以及对应的host 其中host的意思就是指允许访问的Ip地址,%的意思就是任何IP,当然如果是你的本地服务器,你也可以配置为本地的一个IP. 用户可以通

MySQL的远程连接出现错误提示分析

技巧问题 Mysql的远程连接出现"Lost connection to MySQL server during query" 安装完了RH 8.0用自带的mysql以后直接在本机上可以正常使用mysql登陆,用 mysql -u root -p 添加了一些用户,如* beginner pass 即beginner可以从任何地方通过密码可以访问这台Mysql服务器(假设我的mysql服务器为mysql.test.com)但当我运行 mysql -h mysql.test.com -u