远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)

一、如何新建独立帐号并设置权限

  这里我使用Navicat作为我的数据库管理工具,打开Navicat。

选择“用户”--“新建用户”

输入用户名、主机、密码,需要注意的是,主机那不是写“localhost”,而是写“%”

然后可以设置“服务器权限”

和指定数据库的权限,最后保存退出即可

二、远程连接慢

  慢是一个很大的问题,网上的办法是在my.ini的“[mysqld]”下面加入一行“skip-name-resolve”,就像这样:

  然后保存并重启mysql服务即可。

下面是其它网友的补充:

问题现象是这样的:

我在一台机器上(61.183.23.23)启动了一个mysql,然后开通一个账号可以从127.0.0.1或者从61.183.23.23访问。但是遇到一个问题就是使用下面两个命令行访问的时候,速度差别非常大:

mysql –h 127.0.0.1 –u user
mysql –h 61.183.23.23 –u user

然后我使用ping,判断两个IP的速度差不多。

使用127.0.0.1的IP速度比另一个快太多了。虽然说这里的61.183.23.23需要去外网走一圈,但是速度差别怎么会差这么多。

解决办法:

mysql使用skip-name-resolve禁止掉DNS的查询。
mysql会在用户登录过程中对客户端IP进行DNS反查,不管你是使用IP登录还是域名登录,这个反查的过程都是在的。所以如果你的mysql所在的服务器的DNS有问题或者质量不好,那么就有可能造成我遇到的这个问题,DNS解析出现问题。

修改mysql配置文件

[mysqld]
skip-name-resolve

补充:

做个提醒,增加skip-name-resolve有可能导致账号失效,比如我原先的账号是yejianfeng@localhost,然后其实我使用mysql -h127.0.0.1 -uyejianfeng 是可以登录的。但是一旦加上了skip-name-resolve,就不能登录的了。需要加上账号yejianfeng@127.0.0.1

数据库加这个参数速度会变快skip-name-resolve,但是也有注意点,mysql.user 表里面的 host 不要用 localhost 之类的,要用127.0.0.1不然连自己都连不上数据库,会报错

我现在都是先不加skip-name-resolve,现在创建一个root用户不过域是127.0.0.1,然后再把skip-name-resolve加上,就可以使用root登录了,新建用户直接用127.0.0.1,这样就OK了。

(0)

相关推荐

  • mysql SKIP-NAME-RESOLVE 错误的使用时机造成用户权限

    登陆到mysql,查看进程的信息 复制代码 代码如下: show processlist; 发现大量的进程的状态为 login 原来默认的时候mysql启动时是不使用 skip-name-resolve选项的,这样的话,从其它主机的连接会比较慢,因为mysql会对这个ip做dns反向查询,导致大量的连接处于 login状态..... 解决这个问题有两个办法 一是加入 skip-name-resolve参数重启mysql 二是在 /etc/hosts中加入一句 192.168.0.2 server

  • MySql使用skip-name-resolve解决外网链接客户端过慢问题

    在腾讯云上面搭建的mysql使用开发的电脑上navicat进行访问时总是特别的慢,原来是Mysql会对请求的地址进行域名解析,开发的电脑并没有域名,所以会导致特别的慢,使用以下进行解决 [mysqld] skip-name-resolve skip-grant-tables 官方的解释 How MySQL uses DNS When a new thread connects to mysqld, mysqld will spawn a new thread to handle the requ

  • Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

    MySQL数据库收到一个网络连接后,首先拿到对方的IP地址,然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名.用主机名在权限系统里面进行权限判断.反向DNS解析是耗费时间的,有可能让用户感觉起来很慢.甚至有的时候,反向解析出来的主机名并没有指向这个IP地址,这时候就无法连接成功了. 可以在配置文件里面禁止MySQL进行反向DNS解析,只需在my.cnf的[mysqld]段落中加入如下行即可: skip-name-resolve (windows与linux下一样的) 设备在连

  • mysql 加了 skip-name-resolve不能链接数据库问题的解决方法

    mysql 加了 skip-name-resolve不能链接的问题, 要确认 MySql 是否采用过主机名的授权 在 MySql Server 的配置文件 My.ini 中,增加如下两行: [mysqld] skip-name-resolve 它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间. 但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求. 如果开启 ski

  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢. 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve. 原因是默认安装的MySql开启了DNS的反向解析.如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式. 附:How MySQL uses DNS When a new thread connects to mysqld, mysqld will spawn a new thread t

  • 远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)

    一.如何新建独立帐号并设置权限 这里我使用Navicat作为我的数据库管理工具,打开Navicat. 选择"用户"--"新建用户" 输入用户名.主机.密码,需要注意的是,主机那不是写"localhost",而是写"%" 然后可以设置"服务器权限" 和指定数据库的权限,最后保存退出即可 二.远程连接慢 慢是一个很大的问题,网上的办法是在my.ini的"[mysqld]"下面加入一行&quo

  • 远程连接mysql数据库注意点记录

    一.如何新建独立帐号并设置权限 这里我使用Navicat作为我的数据库管理工具,打开Navicat. 选择"用户"--"新建用户" 输入用户名.主机.密码,需要注意的是,主机那不是写"localhost",而是写"%" 然后可以设置"服务器权限" 和指定数据库的权限,最后保存退出即可 二.远程连接慢 慢是一个很大的问题,网上的办法是在my.ini的"[mysqld]"下面加入一行&quo

  • Node.js数据库操作之连接MySQL数据库(一)

    介绍 首先说来介绍一下MySQL(非广告).MySQL是由瑞典的MySQL AB公司开发,后来被甲骨文公司收购.和Oracle一样,MySQL是一个典型的关系型数据库,在百度百科中,把MySQL称为是最好的关系数据库管理系统的之一. 什么是关系型数据库和非关系型数据库 说到关系型数据库,大家肯定就会想到另一个词与之对应,非关系型数据库,那么这两者有什么样的区别呢? 关系型数据库是指采用了关系模型(指的是二维表格模型)来组织数据的数据库,有稳定的表结构:而非关系型数据库中的数据没有关系模型,以对象

  • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

  • nodejs连接mysql数据库及基本知识点详解

    本文实例讲述了nodejs连接mysql数据库及基本知识点.分享给大家供大家参考,具体如下: 一.几个常用的全局变量 1.__filename获取当前文件的路径 2.__dirname获取当前文件的目录 3.process.cwd()获取当前工程的目录 二.文件的引入与导出 1.使用require引入文件 2.使用module.exports导出文件中指定的变量.方法.对象 三.node项目的搭建目录结构 demo package.json 当前项目所依赖的包或者模块     router  存

  • C++连接mysql数据库的两种方法小结

    现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多.通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法.可以通过2种方法实现. 第一种方法是利用ADO连接, 第二种方法是利用mysql自己的api函数进行连接. 第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的

  • python远程连接MySQL数据库

    本文实例为大家分享了python远程连接MySQL数据库的具体代码,供大家参考,具体内容如下 连接数据库 这里默认大家都已经配置安装好 MySQL 和 Python 的MySQL 模块,且默认大家的DB内表和访问账号权限均已设置无误,下面直接代码演示: # -*- coding: utf-8 -*- """ Created on Fri Dec 30 10:43:35 2016 @author: zhengyongzhe """ import M

  • 详解使用navicat连接远程linux mysql数据库出现10061未知故障

    使用使用navicat连接远程linux mysql数据库出现10061未知故障,设置使用ssh连接后出现2013故障 本机环境:win10 navicat premium mysql数据库主机环境:Linux version 4.15.0-42-generic (buildd@lgw01-amd64-023) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 mysq

  • Navicat Premium远程连接MySQL数据库的方法

    新建连接的一方相当于是客户端,被连接的相当于是服务端,步骤如下: 1.创建子账户,在Navicat查询界面键入以下授权命令,依次执行 GRANT ALL PRIVILEGES ON test.* to 'root333'@"%" IDENTIFIED by 'abc111' WITH GRANT OPTION; FLUSH PRIVILEGES; all PRIVILEGES意思是所有权限: on后面接的是数据库名.表名 如:test.* 的意思是授予的权限是数据库test下的所有表,

  • Python基于ssh远程连接Mysql数据库操作

    目录 背景 安装支持库 连接Mysql 自定义查询函数 背景 如果需要访问远程服务器的Mysql数据库,但是该Mysql数据库为了安全期间,安全措施设置为只允许本地连接(也就是你需要登录到该台服务器才能使用),其他远程连接是不可以直接访问,并且相应的端口也做了修改,那么就需要基于ssh来连接该数据库.这种方式连接数据库与Navicat里面界面化基于ssh连接一样. Navicat 连接数据库 安装支持库 如果要连接Mysql,首先需要安装pymysql pip install pymysql 安

随机推荐