连接mysql慢或者多台服务器ping不通mysql

异常:“OperationalError:(1042,”无法获取您的地址的主机名“)

  或者 多主机,dns慢,有的ping不通mysql,有的连接慢

  或者 重启某些服务,突然起来不来,mysql连接超时

分析:有防火墙?关闭 systemctl stop firewalld 没啥用,再看看

处理:在mysql配置文件 /etc/mysql/my.cnf 添加

skip-host-cache
skip-name-resolve

原因:

当新的客户连接mysqld时,mysqld创建一个新的线程来处理请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名:

·         如果操作系统支持线程安全gethostbyaddr_r ()和gethostbyname_r()调用,线程使用它们来执行主机名解析。

·         如果操作系统不支持线程安全调用,线程锁定一个互斥体并调用gethostbyaddr()和gethostbyname()。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。

   重启某些服务后,缓存不匹配,导致连接不上

1、 可以用--skip-name-resolve选项启动mysqld来禁用DNS主机名查找。然而,在这种情况下,你只可以使用MySQL中的授权表中的IP号。

2、如果你有一个很慢的DNS和许多主机,你可以通过用--skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能。

3、可以用--skip-host-cache选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行FLUSH HOSTS语句或执行mysqladmin flush-hosts命令。

4、如果你想要完全禁止TCP/IP连接,用--skip-networking选项启动mysqld。

原文地址:https://www.cnblogs.com/start-fxw/p/10488841.html

时间: 2024-08-11 06:18:21

连接mysql慢或者多台服务器ping不通mysql的相关文章

mysql启动停止,一台服务器跑 多个mysql数据库

一.以非特权用户运行MySQL服务器在讨论如何启动MySQL服务器之前,让我们考虑一下应该以什么用户身份运行MySQL服务器.服务器可以手动或自动启动.如果你手动启动它, 服务器以你登录Unix(Linux)的用户身份启动,即如果你用paul登录Unix并启动服务器,它用paul运行:如果你用su命令切换到root,然后运启动服务器,则它以root运行.然而,大多数情况下你可能不想手动启动服务器,最有可能是你安排MySQL服务器在系统引导时自动启动,作为标准引导过程的一部分,在Unix下,该引导

Linux 服务器ping不通域名

2014-09-06 当 Linux 服务器 ping 不通域名, 出现如下提示:[[email protected] ~]# ping www.baidu.comping: unknown host www.baidu.com 1.检测网络首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定[[email protected] ~]# ping 192.168.2.251PING 192.168.2.251 (192.168.2.251) 56(84) bytes of

一台服务器上的mysql多实例

使用不同的配置文件,启动文件,数据文件,日志文件. 一般用法是在/data目录下按照端口来配置多实例:/data/{3306,3307}/data vim /data/3306/my.cnf <code> [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-rehash [mysqld] user = mysql port = 3306 socket = /data/3306/mysql.sock basedi

远程连接阿里云服务器ping不通ip解决方案

搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西.  在出入方向上新建一个安全组,就可以搞定了. 原文地址:https://www.cnblogs.com/jianxian/p/9007176.html

服务器能远程连接,网络连接正常,但是外网域名Ping不通,浏览器中打不开网站

服务器能远程连接成功,但在浏览器中打不开任何网站,出现这个问题一般是安装什么软件引起IE的相关设置做了变动或者是服务器中了病毒引起的,或是服务器的DNS设置是错误的. 一.先检查服务器DNS是否正确 服务器的DNS是其自身用于解析域名的,如果DNS错误,服务器里就无法解析域名,那么服务器内就不能访问网站了. 1.在CDM或运行中运行 ncpa.cpl 命令 2.本地连接属性 c.选中 -- TCP/IPv4 -- 属性 d.修改服务器的DNS 一般常用的DNS有 8.8.8.8    114.1

Linux:服务器ping不通域名(能ping通ip地址)

在确定网络没问题的情况下, 可以通过以下三个步骤寻找解决办法: 1) 确定设置了域名服务器, 没有的话, 可设置Google的公共DNS服务: # cat /etc/resolv.conf ------------------------------------------------------------------- nameserver 8.8.8.8 nameserver 8.8.4.4 -------------------------------------------------

linux:ping不通www.baidu.com

如果某台Linux服务器ping不通域名, 如下提示: [[email protected] ~]# ping www.baidu.com ping: unknown host www.baidu.com 首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定 [[email protected] ~]# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 19

服务器保持与Mysql的连接

服务器程序经常要访问数据库,并且服务器程序是长时间保持运行的,mysql有一个特点,当连接上数据库后不做任何操作,默认8小时候会自动关闭休眠的连接!一般情况下很难预料什么时候程序会执行数据库操作,如果连接被mysql断开了,会出现意想不到的问题,这在服务器程序中是一种灾难!保持服务器程序与Mysql的连接一种方式是修改默认的休眠时间,但这种方式治标不治本:另一种方式很显然就是定期的执行数据库操作来保持与mysql的连接. 查看默认休眠时间的方式: 登录mysql后输入命令 show variab

android数据库编程:连接服务器上的MySQL数据库详细示例

1 public class DatabaseDemo extends Activity { 2 private TextView textView; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 // TODO Auto-generated method stub 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.acti