偶尔出现 unable to connect to any of the specified MySQL hosts 是怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了偶尔出现 unable to connect to any of the specified MySQL hosts 是怎么回事相关的知识,希望对你有一定的参考价值。

程序偶尔报这个 unable to connect to any of the specified MySQL hosts 错误,但是有数据库那台服务器本身运行的程序就没有报这个错误,这个是怎么回事啊?
问题在于偶尔会连接不上,程序能正常运行,但是不一定什么时候会报这个错误。
但是不知道为什么。。。
求高手解答

1. 检查一下MySQL连接参数配置,连接参数中主机地址写的是IP还是机器 名;

2. 检查MySQL服务器是否是动态获取IP,如果是,那客户端连接时,如果按IP联接,就有可能出现IP不正确的情况。

3. 检查MySQL服务器,看服务是否经常停机;如果是这个问题保证服务稳定即可。

建议连接池参数写IP,然后服务器设置固定IP。

扩展资料:

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。

MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。

MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

常用命令

1:使用SHOW语句找出在服务器上当前存在什么数据库:

mysql> SHOW DATABASES;

2:创建一个数据库MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)

4:查看现在的数据库中存在什么表

mysql> SHOW TABLES;

5:创建一个数据库表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:显示表的结构:

mysql> DESCRIBE MYTABLE;

7:往表中加入记录

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:导入.sql文件命令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中数据

mysql>update MYTABLE set sex=”f” where name=’hyq’;

参考资料:百度百科--MySQL数据库

参考技术A

    检查一下你的MySQL连接参数配置,连接参数中主机地址写的是IP还是机器 名;

    检查你的MySQL服务器是否是动态获取IP,如果是,那客户端连接时,如果按IP联接,就有可能出现IP不正确的情况。

    检查MySQL服务器,看服务是否经常停机;如果是这个问题保证服务稳定即可。


建议连接池参数写IP,然后服务器设置固定IP。

追问

    连接参数是对的,因为是偶尔报这个错误

    IP地址是固定的,服务器肯定是固定IP的。

追答

那就是服务器上的mysql服务不稳定,查一下Mysql日志和应用层日志,看看是什么原因导致的不稳定。

追问

但是在服务器上运行的软件没有报这个错误啊,我强烈怀疑是网络问题,但又不知道怎么排查。。

追答

网络问题导致这个问题的可能是存在的,你可以ping 服务器ip -t 试试,看看有多少概率失败。

本回答被提问者采纳

ORA-29701: unable to connect to Cluster Synchronization Service

修改主机名后,has无法启动,将has启动之后,尝试ASMCA,出现如图提示:

 技术图片

技术图片

 

 

技术图片

 

再尝试登陆asm实例,出现日下提示:

技术图片
技术图片

[[email protected]+ASM ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Sun Mar 3 00:53:35 2019

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service

 

解决问题过程:

1、查看服务

[[email protected]+ASM ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.cssd ora.cssd.type 0/5 0/5 OFFLINE OFFLINE
ora.diskmon ora....on.type 0/10 0/5 OFFLINE OFFLINE
ora.evmd ora.evm.type 0/10 0/5 ONLINE ONLINE edgzrip2
ora.ons ora.ons.type 0/3 0/ OFFLINE OFFLINE

 

2、添加asm服务

[[email protected]+ASM ~]$ srvctl add asm

 

3、查看服务

[[email protected]+ASM ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.asm ora.asm.type 0/5 0/ OFFLINE OFFLINE
ora.cssd ora.cssd.type 0/5 0/5 OFFLINE OFFLINE  
ora.diskmon ora....on.type 0/10 0/5 OFFLINE OFFLINE
ora.evmd ora.evm.type 0/10 0/5 ONLINE ONLINE gzrip2
ora.ons ora.ons.type 0/3 0/ OFFLINE OFFLINE
ora.prod4.db ora....se.type 0/2 0/1 OFFLINE OFFLINE

 

4、启动asm服务

[[email protected] ~]# /u01/app/11.2.0/grid/bin/crsctl start resource ora.asm
CRS-2672: Attempting to start ‘ora.asm‘ on ‘gzrip2‘
CRS-2676: Start of ‘ora.asm‘ on ‘gzrip2‘ succeeded

 

5、启动cssd服务

[[email protected] ~]# /u01/app/11.2.0/grid/bin/crsctl start resource ora.cssd
CRS-2672: Attempting to start ‘ora.cssd‘ on ‘gzrip2‘
CRS-2672: Attempting to start ‘ora.diskmon‘ on ‘gzrip2‘
CRS-2676: Start of ‘ora.diskmon‘ on ‘gzrip2‘ succeeded
CRS-2676: Start of ‘ora.cssd‘ on ‘gzrip2‘ succeeded

 

6、查看服务

[[email protected]+ASM ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE gzrip2
ora.cssd ora.cssd.type 0/5 0/5 ONLINE ONLINE gzrip2
ora.diskmon ora....on.type 0/10 0/5 OFFLINE OFFLINE
ora.evmd ora.evm.type 0/10 0/5 ONLINE ONLINE gzrip2
ora.ons ora.ons.type 0/3 0/ OFFLINE OFFLINE
ora.prod4.db ora....se.type 0/2 0/1 OFFLINE OFFLINE

 

7、尝试登陆asm实例

[[email protected]+ASM ~]$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Sun Mar 3 01:21:16 2019

Copyright (c) 1982, 2011, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Automatic Storage Management option

至此问题解决。

 

tips:

查看ora.cssd服务属性

[[email protected]+ASM ~]$ crs_stat -p ora.cssd
NAME=ora.cssd
TYPE=ora.cssd.type
ACTION_SCRIPT=
ACTIVE_PLACEMENT=0
AUTO_START=1
CHECK_INTERVAL=30
DESCRIPTION="Resource type for CSSD"
FAILOVER_DELAY=0
FAILURE_INTERVAL=3
FAILURE_THRESHOLD=5
HOSTING_MEMBERS=
PLACEMENT=balanced
RESTART_ATTEMPTS=5
SCRIPT_TIMEOUT=600
START_TIMEOUT=600
STOP_TIMEOUT=900
UPTIME_THRESHOLD=1m

 

查看ora.diskmon服务属性

[[email protected]+ASM ~]$ crs_stat -p ora.diskmon
NAME=ora.diskmon
TYPE=ora.diskmon.type
ACTION_SCRIPT=
ACTIVE_PLACEMENT=0
AUTO_START=1
CHECK_INTERVAL=3
DESCRIPTION="Resource type for Diskmon"
FAILOVER_DELAY=0
FAILURE_INTERVAL=3
FAILURE_THRESHOLD=5
HOSTING_MEMBERS=
PLACEMENT=balanced
RESTART_ATTEMPTS=10
SCRIPT_TIMEOUT=60
START_TIMEOUT=600
STOP_TIMEOUT=60
UPTIME_THRESHOLD=5s

 

      1)默认情况下HAS(High Availability Service)是自动启动的.通过如下命令可以取消和启用自动启动
        crsctl disable has
        crsctl enable has
      2)HAS手动启动和停止
        crsctl start has
        crsctl stop has
      3)查看HAS的状态
        crsctl check has
      4)如果想让ora.css和ora.diskmon服务随着HAS的启动而自动启动,那么你可以修改这两个服务的AUTO_START属性
        crsctl modify resource "ora.cssd" -attr "AUTO_START=1"
        or 
        
      5)如果想取消ora.css和ora.diskmon的Auto start 
        crsctl modify resource "ora.cssd" -attr "AUTO_START=never"
        crsctl modify resource "ora.diskmon" -attr "AUTO_START=never"

参考文档:
https://blog.csdn.net/haiross/article/details/16861849
https://blog.csdn.net/zxyhw/article/details/11711337
https://blog.csdn.net/EVISWANG/article/details/52576084

 2019-3-3 12:30 AM

以上是关于偶尔出现 unable to connect to any of the specified MySQL hosts 是怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

ORA-29701: unable to connect to Cluster Synchronization Service

Intellij Idea出现 unable to establish loopback connection

greenplum全量恢复gprecoverseg -F出现Unable to connect to database时的相关分析及解决方法

Tomcat配置多数据源出现Unable to create initial connections

RedisConnectionException: Unable to connect

RedisConnectionException: Unable to connect